본문으로 건너뛰기
cccskills
무료GitHub에 공개

testdriver:provision

Launch browsers, desktop apps, and extensions in your sandbox

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Vercel
설치 방법 보기

포함된 파일(1)

  • SKILL.md8.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

<!-- Generated from provision.mdx. DO NOT EDIT. -->

Overview

The Provision API sets up applications in your sandbox before the tests run. It downloads, installs, and starts browsers, desktop apps, VS Code, Chrome extensions, and more.

Use the provision methods through testdriver.provision.*:

await testdriver.provision.chrome({ url: 'https://example.com' });

Methods

chrome()

Start Google Chrome with an optional URL.

await testdriver.provision.chrome(options?)
<ParamField path="options" type="ProvisionChromeOptions"> <Expandable title="properties"> <ParamField path="url" type="string" default="http://testdriver-sandbox.vercel.app/"> The URL to go to after Chrome starts. </ParamField>
<ParamField path="maximized" type="boolean" default={true}>
  Start Chrome with the window at the maximum size.
</ParamField>

<ParamField path="guest" type="boolean" default={false}>
  Start Chrome in the guest profile mode.
</ParamField>
</Expandable> </ParamField>
// Basic
await testdriver.provision.chrome({ url: 'https://example.com' });

// With guest mode
await testdriver.provision.chrome({
  url: 'https://example.com',
  guest: true,
  maximized: true,
});

chromeExtension()

Install and start a Chrome extension. You can install it from a local unpacked directory. Or you can install it from the Chrome Web Store by the extension ID.

await testdriver.provision.chromeExtension(options)
<ParamField path="options" type="ProvisionChromeExtensionOptions" required> One of `extensionPath` or `extensionId` is required. <Expandable title="properties"> <ParamField path="extensionPath" type="string"> Local path to an unpacked extension directory. The extension files are uploaded to the sandbox. </ParamField>
<ParamField path="extensionId" type="string">
  Chrome Web Store extension ID to install.
</ParamField>

<ParamField path="maximized" type="boolean" default={true}>
  Launch Chrome in maximized window mode.
</ParamField>
</Expandable> </ParamField>
// From local directory
await testdriver.provision.chromeExtension({
  extensionPath: './my-extension',
});

// From Chrome Web Store
await testdriver.provision.chromeExtension({
  extensionId: 'abcdefghijklmnop',
});

vscode()

Launch Visual Studio Code with an optional workspace and extensions.

await testdriver.provision.vscode(options?)
<ParamField path="options" type="ProvisionVSCodeOptions"> <Expandable title="properties"> <ParamField path="workspace" type="string"> Path to a workspace folder or `.code-workspace` file to open. </ParamField>
<ParamField path="extensions" type="string[]" default={[]}>
  Array of VS Code extension IDs to install before launching.
</ParamField>
</Expandable> </ParamField>
await testdriver.provision.vscode({
  workspace: '/home/testdriver/project',
  extensions: ['ms-python.python', 'esbenp.prettier-vscode'],
});

installer()

Download and run an application installer. Supports .msi, .exe, .deb, .rpm, .appimage, .sh, .dmg, and .pkg formats.

await testdriver.provision.installer(options)
<ParamField path="options" type="ProvisionInstallerOptions" required> <Expandable title="properties"> <ParamField path="url" type="string" required> Download URL for the installer. </ParamField>
<ParamField path="filename" type="string">
  Override the auto-detected filename from the URL.
</ParamField>

<ParamField path="appName" type="string">
  Application name to focus after installation completes.
</ParamField>

<ParamField path="launch" type="boolean" default={true}>
  Whether to focus/launch the app after installation.
</ParamField>
</Expandable> </ParamField>

Behavior:

  • Downloads the installer from the URL
  • Auto-detects the install method based on file extension
  • Runs the appropriate install command (e.g., msiexec for .msi, dpkg for .deb)
  • Optionally focuses the installed application
// Windows MSI installer
await testdriver.provision.installer({
  url: 'https://example.com/app-setup.msi',
  appName: 'MyApp',
});

// Linux DEB package
await testdriver.provision.installer({
  url: 'https://example.com/app.deb',
  appName: 'MyApp',
  launch: true,
});

electron()

Launch an Electron application.

await testdriver.provision.electron(options)
<ParamField path="options" type="ProvisionElectronOptions" required> <Expandable title="properties"> <ParamField path="appPath" type="string" required> Path to the Electron application directory or executable. </ParamField>
<ParamField path="args" type="string[]" default={[]}>
  Additional command-line arguments to pass to the Electron app.
</ParamField>
</Expandable> </ParamField>
await testdriver.provision.electron({
  appPath: '/home/testdriver/my-electron-app',
  args: ['--no-sandbox'],
});

dashcam()

Start Dashcam recording with custom options. Usually called automatically by other provision methods, but can be called directly for custom configurations.

await testdriver.provision.dashcam(options?)
<ParamField path="options" type="ProvisionDashcamOptions"> <Expandable title="properties"> <ParamField path="logPath" type="string"> Path to the TestDriver log file. Defaults to `/tmp/testdriver.log` (Linux) or `C:\Users\testdriver\testdriver.log` (Windows). </ParamField>
<ParamField path="logName" type="string" default="TestDriver Log">
  Display name for the log file in the Dashcam replay.
</ParamField>

<ParamField path="webLogs" type="boolean" default={true}>
  Enable web traffic log capture.
</ParamField>

<ParamField path="title" type="string">
  Recording title for the Dashcam session.
</ParamField>
</Expandable> </ParamField>
await testdriver.provision.dashcam({
  title: 'Login Flow Test',
  logPath: '/tmp/my-app.log',
  logName: 'Application Log',
  webLogs: true,
});

Types

interface ProvisionChromeOptions {
  url?: string;                    // Default: "http://testdriver-sandbox.vercel.app/"
  maximized?: boolean;             // Default: true
  guest?: boolean;                 // Default: false
}

interface ProvisionChromeExtensionOptions {
  extensionPath?: string;          // Local unpacked extension path
  extensionId?: string;            // Chrome Web Store ID
  maximized?: boolean;             // Default: true
}

interface ProvisionVSCodeOptions {
  workspace?: string;              // Workspace path
  extensions?: string[];           // Extension IDs to install
}

interface ProvisionInstallerOptions {
  url: string;                     // Download URL (required)
  filename?: string;               // Override filename
  appName?: string;                // App name to focus
  launch?: boolean;                // Default: true
}

interface ProvisionElectronOptions {
  appPath: string;                 // Path to Electron app (required)
  args?: string[];                 // Additional args
}

interface ProvisionDashcamOptions {
  logPath?: string;                // Log file path
  logName?: string;                // Default: "TestDriver Log"
  webLogs?: boolean;               // Default: true
  title?: string;                  // Recording title
}

Complete Example

import { describe, it, beforeAll, afterAll } from 'vitest';
import TestDriver from 'testdriverai';

describe('Chrome Extension Test', () => {
  let testdriver;

  beforeAll(async () => {
    testdriver = new TestDriver({
      os: 'linux',
      resolution: '1920x1080',
    });
    
    await testdriver.ready();
    
    // Install extension and open Chrome
    await testdriver.provision.chromeExtension({
      extensionPath: './my-extension',
    });
    
    // Start Dashcam with custom logs
    await testdriver.provision.dashcam({
      title: 'Extension Test',
      webLogs: true,
    });
  });

  afterAll(async () => {
    await testdriver.disconnect();
  });

  it('tests the extension popup', async () => {
    await testdriver.find('extension icon').click();
    await testdriver.find('popup content').click();
  });
});

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

How the TestDriver agent behaves on GitHub issues, pull requests, and @mentions

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

Execute natural language tasks using AI

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

Make AI-powered assertions about screen state

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

Deploy TestDriver on your AWS infrastructure using CloudFormation

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

Speed up tests with screenshot-based caching

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

How TestDriver learns your app and caches what it discovers for instant, deterministic replays

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

testdriverai/testdriverai4732026년 9월 21일 업데이트

testdriverai의 스킬 모두 보기

이 스킬의 문제 신고