Token导航 LogoToken导航

Agent Skill · 研究检索

generate-tests(生成测试)

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

generate-tests 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描有未通过项,按安装量在研究检索类的 73,675 个 Skill 里排第 70,604。

总安装 210周安装 9GitHub Stars 17下载 73核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:generate-tests(生成测试)
来源仓库:https://github.com/buildbetter-app/bb-skills
仓库路径:skills/generate-tests
安装命令:
npx skills add https://github.com/buildbetter-app/bb-skills --skill generate-tests
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/buildbetter-app/bb-skills --skill generate-tests

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于辅助测试设计、自动化测试和用例整理。适合编写 Playwright 测试文件或生成可执行测试套件。需基于 app-navigator 映射结果,确保测试与实际代码一致。不涉及后端/API 测试,也不替代人工测试策略。generate-tests 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/generate-tests

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/buildbetter-app/bb-skills --skill generate-tes…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

generate-tests 怎么安装?

在终端执行 npx skills add https://github.com/buildbetter-app/bb-skills --skill generate-tests。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

generate-tests 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

generate-tests 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

generate-tests 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

generate-tests 用的人多吗?

公开数据是累计安装 210 次,近一周安装 9 次,下载 73 次,GitHub 17 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

generate-tests 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
generate-tests

生成测试 · 本页

21017接触敏感数据未明确未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Generate Tests

Generate reusable Playwright .spec.ts test files from your app-navigator map and playbooks.

Core principle: Mapped knowledge should produce executable tests. This skill reads what app-navigator discovered and writes a test suite that lives in your repo and runs with npx playwright test.

When to Use

  • After running /app-navigator setup and you want persistent, rerunnable tests
  • When you need a baseline test suite for CI
  • When trust-but-verify reveals gaps that should be codified as assertions
  • When recommended by app-navigator or trust-but-verify

Not for: Backend/API tests, replacing hand-written integration tests, or one-shot verification (use trust-but-verify for that).

Invocation

  • /generate-tests — generates smoke-depth tests (default)
  • /generate-tests --depth functional — smoke + interaction tests
  • /generate-tests --depth full — functional + edge cases + responsive

Process

digraph generate_tests {
    "Phase 1:\nPrerequisites" [shape=box];
    "Phase 2:\nGenerate Auth" [shape=box];
    "Phase 3:\nGenerate Page Tests" [shape=box];
    "Phase 4:\nValidate (optional)" [shape=box];
    "Done" [shape=doublecircle];

    "Phase 1:\nPrerequisites" -> "Phase 2:\nGenerate Auth";
    "Phase 2:\nGenerate Auth" -> "Phase 3:\nGenerate Page Tests";
    "Phase 3:\nGenerate Page Tests" -> "Phase 4:\nValidate (optional)";
    "Phase 4:\nValidate (optional)" -> "Done";
}

Phase 1: Prerequisites

  1. App map: Check ~/.claude/skills/app-navigator/app-map.md exists

- If no: "Run /app-navigator setup first — I need the app map to generate tests." Offer to invoke it.

  1. Playwright installed: Check if @playwright/test is in root package.json devDependencies

- If no: run pnpm add -D -w @playwright/test and npx playwright install chromium

  1. Config: Check if playwright.config.ts exists in the project root

- If no: scaffold one with this template:

import { defineConfig, devices } from '@playwright/test';
import dotenv from 'dotenv';

dotenv.config({ path: '.env.test.local' });

export default defineConfig({
  testDir: './tests/e2e',
  timeout: 30_000,
  expect: { timeout: 10_000 },
  fullyParallel: true,
  retries: 1,
  use: {
    baseURL: process.env.BB_TEST_BASE_URL || 'http://localhost:5173',
    trace: 'on-first-retry',
  },
  projects: [
    { name: 'setup', testMatch: /auth\.setup\.ts/, teardown: undefined },
    {
      name: 'chromium',
      use: {
        ...devices['Desktop Chrome'],
        storageState: 'tests/e2e/.auth/user.json',
      },
      dependencies: ['setup'],
    },
  ],
});
  1. Directories: Create tests/e2e/ and tests/e2e/.auth/ if they don't exist
  2. Gitignore: Add tests/e2e/.auth/ and .env.test.local to .gitignore if not present

Phase 2: Generate Auth Setup

Read:

  • ~/.claude/skills/app-navigator/playbooks/auth.md for the login flow
  • ~/.claude/projects/<project>/memory/reference_local_auth.md for credentials

Create .env.test.local (gitignored) from memory credentials:

BB_TEST_EMAIL=<email from memory>
BB_TEST_PASSWORD=<password from memory>
BB_TEST_BASE_URL=<app URL from memory, default http://localhost:5173>

Generate tests/e2e/auth.setup.ts:

  • Read BB_TEST_EMAIL and BB_TEST_PASSWORD from process.env
  • Navigate to the login URL (e.g., http://localhost:5173/login)
  • Follow the SSO/OAuth redirect to the auth domain
  • Fill the email and password fields on the login form
  • Click the submit/login button
  • Wait for redirect through the OAuth callback path (e.g., /auth/callback) back to the app domain
  • If an org selector appears: select the first org or one matching BB_TEST_ORG env var
  • Save storageState to tests/e2e/.auth/user.json

The auth setup captures cookies from all domains visited (app + auth), which preserves the auth session across tests.

Important: The exact login flow (field names, redirect chain, org selector) comes from playbooks/auth.md. Read it carefully — don't assume a generic login form.

Phase 3: Generate Page Tests

Read:

  • ~/.claude/skills/app-navigator/app-map.md — routes, key elements, interactions
  • ~/.claude/skills/app-navigator/playbooks/navigation.md — how to navigate
  • ~/.claude/skills/app-navigator/playbooks/interactions.md — common UI patterns

For each route in the app map, generate tests/e2e/<page-slug>.spec.ts.

Every generated file starts with:

// AUTO-GENERATED by generate-tests skill from app-navigator map
// Regenerate with: /generate-tests --depth <level>
// Last generated: YYYY-MM-DD

Depth: smoke (default)

test.describe('Page Name', () => {
  test('page loads', async ({ page }) => {
    await page.goto('/route');
    await expect(page.locator('text=Expected Heading')).toBeVisible();
  });

  test('key elements present', async ({ page }) => {
    await page.goto('/route');
    // Assert 2-3 key elements from app-map "Key Elements" field
    await expect(page.getByRole('button', { name: 'Create' })).toBeVisible();
  });
});

Depth: functional — adds interaction tests:

  test('create button opens dropdown', async ({ page }) => {
    await page.goto('/route');
    await page.getByRole('button', { name: 'Create' }).click();
    await expect(page.getByText('Create Document')).toBeVisible();
  });

Depth: full — adds edge cases + responsive:

  test('responsive: mobile layout', async ({ page }) => {
    await page.setViewportSize({ width: 375, height: 812 });
    await page.goto('/route');
    await expect(page.locator('text=Expected Heading')).toBeVisible();
  });

Test conventions:

  • Tests grouped by depth with comments: // --- SMOKE ---, // --- FUNCTIONAL ---, // --- FULL ---
  • All tests reuse storageState from the setup project — no re-login
  • Selectors use getByRole, getByText, getByLabel — resilient to DOM changes
  • Each test is independent — no ordering dependencies
  • Routes sharing a component (e.g., tracked items) are grouped in one file
  • Settings sub-pages are included in settings.spec.ts

Phase 4: Validate (optional)

After generating, offer:

"Tests generated. Want me to run them to make sure they pass?"

If yes:

  1. Check dev server is reachable
  2. Run npx playwright test
  3. If tests fail: read the error, fix the test (adjust selector/wait/assertion), re-run. Max 3 fix iterations per test, then skip with a note.
  4. Report: X/Y tests passing, Z skipped with reasons

If no: files are ready. Do NOT auto-commit — let the user decide.

Regeneration

Running /generate-tests again overwrites all files with the AUTO-GENERATED header. Hand-written test files without the header are NOT touched.

Red Flags

  • Never hardcode credentials in test files. Always use env vars.
  • Never commit .env.test.local — it contains real credentials.
  • Never auto-commit generated tests. Let the user review and commit.
  • Don't generate tests without an app-map. The map is the source of truth.
  • Don't invent selectors. Every element name and assertion comes from the app-map.

After Generation

"Tests generated at tests/e2e/. Run them with npx playwright test. Want to verify your current feature branch against its plan? Run /trust-but-verify."

If the user says yes, invoke the trust-but-verify skill.

Integration

  • Depends on: app-navigator (reads app-map.md and playbooks)
  • Credential source: reference_local_auth.md in project memory → .env.test.local
  • Recommended by: app-navigator (after setup), trust-but-verify (if no tests exist)
  • Recommends: trust-but-verify (after generation)

平台分布

Codex

35.51%
按下载量换算26

Claude

27.04%
按下载量换算20

Cursor

19.12%
按下载量换算14

Gemini CLI

8.75%
按下载量换算6

安全审计

Gen Agent Trust Hub

可疑

Socket

通过

Snyk

未通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills