testdriver:generating-tests

SkillAI & models

Generate tests by exploring your app with the AI vision agent

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the testdriver:generating-tests skill

What this skill tells your AI

The instructions your AI receives, as published by testdriverai/testdriverai in ai/skills/testdriver-generating-tests/SKILL.md and read by ahel’s review.

Start by exploring your app. This is where tests begin: you describe a flow in plain English, and the TestDriver vision agent clicks, types, and reads the screen to figure it out — then writes the test for you. No selectors, no DOM, no brittle locators. Just describe what you want to test and let the agent discover the rest.

There are two ways to explore: chatting interactively with your AI assistant through the TestDriver MCP server, or handing a coding agent our instructions file and prompting it to generate a test.

Instructions for Coding Agents

We recommend starting with our quickstart, then supplying your coding agent with our agent instructions file.

Then, you can prompt your coding agent to generate tests. Here is an example prompt:

Make me a TestDriver test that does the following steps:

Navigate to practicetestautomation.com
Type username student into Username field
Type password Password123 into Password field
Push Submit button
Verify new page contains expected text 'logged in'

Explicit commands are preferred for production tests, as they are cheaper, faster, and more reliable.

Start a Conversation

With TestDriver's MCP server and your AI assistant (GitHub Copilot, Cursor, or Claude Desktop), you can create tests by chatting with an AI agent. The agent spawns a virtual machine, executes actions, and writes test code for you.

Open your AI assistant's chat. If your project has no other agents configured, the TestDriver agent is used by default. Otherwise, select testdriver from the agent dropdown in the chat panel.

Describe what you want to test:

Create a test that logs into my app at https://myapp.com

The agent will:

  1. Start a new session and spawn a Linux virtual machine
  2. Launch Chrome and navigate to your URL
  3. Execute actions based on your instructions
  4. Write the test code to a .test.mjs file

Live Preview Panel

When the agent starts a session, a live preview panel opens in your editor. This lets you:

  • Watch tests execute in real-time
  • Interact with the VM — click, type, and navigate manually
  • Debug issues — see exactly what the AI sees

Interactive Workflow

The recommended workflow for exploring and creating tests:

```
Test the checkout flow on https://shop.example.com
```
```
The login modal appeared. Use test@example.com and password123
```
```
Assert that the order confirmation page is shown with the order number
```

Example Conversation

Here's a complete example of exploring and creating a login test:

You: Create a test for the login flow at https://console.testdriver.ai

Agent: I'll create a test for the login flow. Starting a session...
       [Screenshot: Login page loaded]

       I can see the login page. Let me find the email input.
       [Screenshot: Email input highlighted]

       Now I'll type the email and find the password field...

You: Use test@example.com for the email

Agent: Got it. Typing test@example.com...
       [Screenshot: Email entered]

       Now entering the password and clicking Sign In...
       [Screenshot: Dashboard loaded]

       ✅ Login successful! I've written the test to tests/login.test.mjs

Generated Test Code

The agent generates standard Vitest test files:

import { describe, expect, it } from "vitest";
import { TestDriver } from "testdriverai/vitest/hooks";

describe("Login Flow", () => {
  it("should log in successfully", async (context) => {
    const testdriver = TestDriver(context);

    await testdriver.provision.chrome({
      url: "https://console.testdriver.ai"
    });

    const emailInput = await testdriver.find("email input field");
    await emailInput.click();
    await testdriver.type("test@example.com");

    const passwordInput = await testdriver.find("password input field");
    await passwordInput.click();
    await testdriver.type("password123");

    const signInButton = await testdriver.find("Sign In button");
    await signInButton.click();

    const result = await testdriver.assert("dashboard is visible");
    expect(result).toBeTruthy();
  });
});

Tips for Better Tests

Next

Signals

GitHub stars
242
Forks
35
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
testdriver-generating-tests
Source
github.com/testdriverai/testdriverai