Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

test-validator测试验证器

Agent Skill

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

总安装

343

周安装

14

GitHub Stars

2

下载量

111
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/masanao-ohba/claude-manifests --skill test-validator

简介

用于验证测试用例的正确性与执行结果的可靠性。

  • 适合检查断言逻辑、输入输出匹配或边界条件覆盖。
  • 使用时应确保测试数据真实反映业务场景,避免虚假通过。
  • 建议结合代码审查与人工复核,提升测试有效性。
  • 安装方式:通过 GitHub 仓库安装,支持 Codex、Claude、Cursor、Gemini CLI。

SKILL.md

PHP Test Validator

A specialized skill for validating PHP test files in CakePHP projects, particularly focused on strict testing principles that ensure tests guarantee production code behavior.

Configuration

This skill reads project-specific test rules from:

  1. Project's CLAUDE.md - testing rules and constraints
  2. tests/README.md - Project test documentation (default)

Core Principle

Test code exists to guarantee the functionality of production code. Code that contradicts this purpose is prohibited.

All validation rules derive from this principle. Tests must:

  • Execute production code paths
  • Use production configuration
  • Verify actual behavior, not code structure

Derived Requirements

The core principle implies:

  1. Guarantee Traceability: Each guarantee item (保証対象) must correspond to a concrete branch or behavior in the @covers target method. Read the production code first; describe the code's actual behavior, not the test's intent.
  2. Assertion Distinguishability: When multiple code paths produce the same observable output (e.g., same redirect URL, same HTTP status), a single assertion on that output is insufficient. Additional verification (DB state, response body, side effects) is required to prove which path was exercised.

Core Validation Rules

1. Test Documentation Format

Default requirements:

  • @covers annotation specifying the target class/method
  • @group annotation for test categorization
  • Clear test method naming (test<Action><ExpectedBehavior>)

Example:

/**
 * @covers \App\Controller\UsersController::index
 * @group integration
 */
public function testIndexReturnsUserList(): void
{
    $this->get('/users');
    $this->assertResponseOk();
}

2. Configure::read() Usage Validation

Required Pattern:

  • Use Configure::read() for all configuration values
  • Never hardcode status values or flags
  • Include use Cake\Core\Configure; statement in fixtures

Check for violations:

// ❌ WRONG: Hardcoded value
$status = 5;

// ✅ CORRECT: Using Configure::read
$status = Configure::read('Application.Status.applying');

3. Prohibited Patterns Detection

All patterns violate the core principle. See tests/README.md for project-specific examples.

Critical Violations:

#CategoryPatternWhy Prohibited
1Conditionalif, ??, try-catch with assertionsResult depends on execution path
2Config OverrideConfigure::write()Test uses different config than production
3Missing @coversTest without @covers annotationCoverage target unknown
4Existence Checkmethod_exists(), class_exists()Tests code structure, not behavior
5PlaceholdermarkTestSkipped(), assertTrue(true)No actual verification
6PHPDoc ContentNOTE:, dates, impl notes in PHPDocSpec only, no implementation details
7Defensive Definitionif (!defined()) {define();}Masks production errors where constant is undefined
8Shallow AssertionOnly assertResponseOk() without business logic verificationTests HTTP status, not actual functionality
9Guarantee not traceable to @covers branchDescribes a concept the @covers target does not implementGuarantee must map to actual code branch
10Indistinguishable assertions for different code pathsSame observable output used to assert both success and error pathsAdditional verification required to distinguish paths
-Mock ProductionMock Components, Models, HelpersBusiness logic not tested
-Schema Override_initializeSchema in ModelDB schema diverges from migration
-Direct DatanewEntity() without FixtureTest data diverges from production

Rule 7 - Defensive Definition Details:

Test code should NOT protect against undefined constants, classes, or functions. If production code requires them, the test should fail when they're missing.

// ❌ WRONG: Defensive definition masks production errors
if (!defined('APP_VERSION')) {
    define('APP_VERSION', '1.0.0');
}

// ❌ WRONG: Defensive class existence check
if (!class_exists('SomeService')) {
    class SomeService { /* mock */ }
}

// ✅ CORRECT: Let the test fail if constant is undefined
// Production code should define APP_VERSION; test should verify it exists
$this->assertNotEmpty(APP_VERSION);

Rule 8 - Shallow Assertion Details:

assertResponseOk() only verifies HTTP 2xx status. It does NOT verify:

  • Response body content matches expected data
  • Database state changed correctly
  • Business rules were applied
// ❌ WRONG: Only checks HTTP status
public function testCreateUser(): void
{
    $this->post('/users', ['name' => 'John']);
    $this->assertResponseOk();  // Passes even if user wasn't created!
}

// ✅ CORRECT: Verify actual business outcome
public function testCreateUser(): void
{
    $this->post('/users', ['name' => 'John']);
    $this->assertResponseOk();

    // Verify database state
    $user = $this->Users->find()->where(['name' => 'John'])->first();
    $this->assertNotNull($user);
    $this->assertEquals('John', $user->name);

    // Or verify response content
    $this->assertResponseContains('User created successfully');
}

4. Production Code Verification

Check that test targets existing production code:

  • Controller file exists
  • Action method exists
  • Route is defined
  • URL pattern matches

5. Test Command Validation

Use the test command defined in the project's CLAUDE.md.

Validation rules:

  • Only use the test command specified in CLAUDE.md
  • Do NOT run test commands directly (e.g., composer test, vendor/bin/phpunit) unless specified
  • Check project instructions before executing tests

6. Specification Alignment Validation

Validates alignment between test documentation (README.md) and actual test code.

Alignment Checks:

  • Test function names match documentation
  • Implementation status markers are accurate
  • Test counts per category are correct
  • Consolidation notes are documented

Integrity Score:

Score = (Matching Functions / Total Functions in README) × 100

100:    Perfect alignment
90-99:  Minor discrepancies
70-89:  Moderate misalignment - fix before PR
0-69:   Critical misalignment - fix immediately

When to Run:

  • After test code is written or modified
  • Before creating PR or committing test changes
  • During quality review

Validation Process

When analyzing a test file:

  1. Load project rules - Read tests/README.md for project-specific prohibitions
  2. Parse PHPDoc blocks - Check for required annotations (@covers, @group, etc.)
  3. Scan for hardcoded values - Identify potential Configure::read violations
  4. Detect prohibited patterns - Check against core + project-specific patterns
  5. Verify production code - Confirm controller/action/route existence
  6. Check fixture compliance - Ensure proper fixture usage patterns
  7. Validate specification alignment - Compare README.md with actual test code

Output Format

Return validation results as:

✅ PASS: [Description of what passed]
❌ FAIL: [Description of violation]
   Line X: [Code snippet or issue]
   Fix: [Suggested correction]
⚠️ WARN: [Non-critical issue]

Examples

Example 1: Validating test documentation

// Input: Test method without proper documentation
public function testIndex(): void
{
    $this->get('/user/users');
    $this->assertResponseOk();
}

// Output:
❌ FAIL: Missing required PHPDoc documentation
   Line 1: testIndex() lacks @covers annotation
   Fix: Add PHPDoc with @covers specifying the target class/method

Example 2: Detecting Configure::write violation

// Input: Test with configuration override
public function testWithConfig(): void
{
    Configure::write('App.setting', 'test-value');
    // ...
}

// Output:
❌ FAIL: Prohibited pattern - Configure::write in test
   Line 3: Configure::write('App.setting', 'test-value')
   Fix: Use actual production configuration value with Configure::read()

Example 3: Conditional assertion violation

// Input: Test with conditional logic
public function testWithCondition(): void
{
    $result = $this->service->process();
    if ($result !== null) {
        $this->assertEquals($expected, $result);
    } else {
        $this->markTestSkipped('No data');
    }
}

// Output:
❌ FAIL: Prohibited pattern - Conditional assertion
   Line 4-8: if/else block with assertions
   Fix: Remove conditional; test should have deterministic expected outcome

Example 4: Existence check violation

// Input: Test checking code structure instead of behavior
public function testMethodExists(): void
{
    $this->assertTrue(method_exists($this->controller, 'index'));
}

// Output:
❌ FAIL: Prohibited pattern - Existence check
   Line 3: method_exists() tests code structure, not behavior
   Fix: Call the method and verify its actual output/behavior

Integration with CakePHP Projects

This skill is specifically designed for:

  • CakePHP 4.x/5.x projects
  • Multi-tenant database architectures
  • Projects following strict test principles
  • PHP 8.x codebases

Project Rules: tests/README.md and project CLAUDE.md

Usage Notes

  • Read tests/README.md first to load project-specific rules
  • Run validation before committing test files
  • Integrity score must be >= 90 for PR approval
  • All ERROR severity issues must be resolved before merge
  • Particularly important during PHP/CakePHP version upgrades

Used By Agents

  • quality-reviewer: Validates test code during code review
  • test-developer: Validates test quality during implementation
  • deliverable-evaluator: Gate-check before commit/PR

Related Skills

This skill supersedes test-spec-validator (now integrated):

  • Test code quality validation (PHPDoc, assertions, patterns)
  • README.md ↔ test code alignment validation

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36%
按下载量换算40

Claude

29.94%
按下载量换算33

Cursor

21.95%
按下载量换算24

Gemini CLI

9.31%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills