mcpField
T
testing

testing

github.com/thebeardedbearsas测试与质量108135 次安装2 天前更新
代码仓库

关于 testing

面向 Claude-Craft 多种技术栈的测试技能,介绍 TDD/BDD 原则、质量目标及测试策略。

主要功能

  1. 01RED–GREEN–REFACTOR TDD 循环
  2. 02覆盖率与测试金字塔目标
  3. 03变异测试与基于属性的测试
  4. 04按技术栈推荐工具
  5. 05浏览器与单体仓库测试指南

适用场景

  1. 01为新功能规划测试套件
  2. 02为技术栈选择测试工具
  3. 03通过覆盖率以外的指标评估测试质量
  4. 04在单体仓库中组织浏览器测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thebeardedbearsas/claude-craft --skill testing

安装后在 Claude Code 中输入/testing确认已加载。

附带文件README.mdREFERENCE.md

详细介绍

测试 - TDD/BDD 原则(2026)

适用于 Claude-Craft 框架所有技术栈的通用测试原则。

基本原则

  • TDD 循环:RED → GREEN → REFACTOR
  • 目标覆盖率:>= 80%
  • 测试金字塔:单元测试(70%)> 集成测试(20%)> E2E 测试(10%)
  • 模式:Arrange-Act-Assert(AAA)
  • 命名:使用能说明行为的描述性测试名称

2026 年推荐工具

技术栈单元测试/组件测试E2E/浏览器变异测试
JS/TS/ReactVitest 4.1+(Browser Mode 稳定版)PlaywrightStryker
PHP/Laravel/SymfonyPest 4.5+(PHPUnit 12,浏览器测试)通过 Pest 使用 PlaywrightInfection
Pythonpytest 8.x + Ruff 0.8+PlaywrightMutmut
Flutterflutter_test + bloc_test 10+Patrol 3.13+内置
React NativeRNTL + JestDetox/MaestroStryker

来源: Vitest 4、Pest 4、Stryker Mutator

2026 年策略

Vitest 4 — Browser Mode 稳定版

弃用臃肿的 JSDOM。使用原生 Chromium/Firefox/WebKit。

// vitest.config.ts
export default defineConfig({
  test: {
    browser: {
      enabled: true,
      name: 'chromium', // ou 'firefox', 'webkit'
      provider: 'playwright',
    },
  },
});

来源: Vitest Browser Mode

变异测试 —“覆盖率会骗人,变异分数才说明真相”

测试测试的质量。变异分数 >= 80%。

# Stryker (JS/TS/C#)
npx stryker run

# Infection (PHP)
vendor/bin/infection --min-msi=80

# Mutmut (Python)
mutmut run

来源: Stryker Mutator

基于属性的测试

根据不变属性生成测试。

// fast-check (JS/TS)
import fc from 'fast-check';

test('sorting preserves all elements', () => {
  fc.assert(
    fc.property(fc.array(fc.integer()), (arr) => {
      const sorted = [...arr].sort();
      return sorted.length === arr.length;
    })
  );
});

来源: fast-check

Pest 4 — 集成式浏览器测试
// Pest 4.5+ avec Playwright natif
test('user can login', function () {
    $this->browse(function (Browser $browser) {
        $browser->visit('/login')
            ->type('email', '[email protected]')
            ->type('password', 'secret')
            ->press('Login')
            ->assertPathIs('/dashboard');
    });
});

来源: Pest 4 浏览器测试

Vitest Workspaces — 单体仓库
// vitest.workspace.ts
export default defineWorkspace([
  'packages/*/vitest.config.ts', // Unit tests
  {
    test: {
      browser: { enabled: true, name: 'chromium' },
      include: ['e2e/**/*.test.ts'],
    },
  }, // Browser tests
]);

来源: Vitest Workspaces


完整文档请参阅 @.claude/references/base/testing.md。

评论

支持 Markdown