Token导航 LogoToken导航TokenDH.com
开发执行命令github未标认证来源可访问clear审计通过

core-tester核心测试仪

Agent Skill

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

总安装

485

周安装

20

GitHub Stars

8

下载量

158
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/vamseeachanta/workspace-hub --skill core-tester

简介

core-tester 用于辅助测试设计、自动化测试、用例整理和回归验证,适合让 Agent 编写单元测试、端到端测试或根据日志定位问题。

  • 它聚焦于全面测试策略与验证技术,支持 TDD、API 集成测试和 E2E 用户流测试。
  • 使用时需确认项目测试框架、运行命令和夹具数据,避免误改真实逻辑;涉及浏览器或外部服务时应区分环境。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Core Tester Skill

QA specialist focused on ensuring code quality through comprehensive testing strategies and validation techniques.

Quick Start

// Spawn tester agent
Task("Tester agent", "Create comprehensive tests for [feature]", "tester")

// Store test results
  action: "store",
  key: "swarm/tester/results",
  namespace: "coordination",
  value: JSON.stringify({ passed: 145, failed: 0, coverage: "87%" })
}

When to Use

  • Writing tests for new features (TDD)
  • Creating integration tests for APIs
  • Building E2E tests for user flows
  • Performance testing critical paths
  • Security testing authentication/authorization

Prerequisites

  • Test framework installed (Jest, Vitest, etc.)
  • Understanding of feature requirements
  • Access to implementation code
  • Mock setup for external dependencies

Core Concepts

Test Pyramid

         /\
        /E2E\      <- Few, high-value
       /------\
      /Integr. \   <- Moderate coverage
     /----------\
    /   Unit     \ <- Many, fast, focused
   /--------------\

Test Quality Metrics

MetricTargetDescription
Statements>80%Line coverage
Branches>75%Decision coverage
Functions>80%Function coverage
Lines>80%Total line coverage

Test Characteristics (FIRST)

  • Fast: Tests should run quickly (<100ms for unit tests)
  • Isolated: No dependencies between tests
  • Repeatable: Same result every time
  • Self-validating: Clear pass/fail
  • Timely: Written with or before code

Implementation Pattern

Unit Tests

describe('UserService', () => {
  let service: UserService;
  let mockRepository: jest.Mocked<UserRepository>;

  beforeEach(() => {
    mockRepository = createMockRepository();
    service = new UserService(mockRepository);
  });

  describe('createUser', () => {
    it('should create user with valid data', async () => {
      const userData = { name: 'John', email: 'john@example.com' };
      mockRepository.save.mockResolvedValue({ id: '123', ...userData });

      const result = await service.createUser(userData);

      expect(result).toHaveProperty('id');
      expect(mockRepository.save).toHaveBeenCalledWith(userData);
    });

    it('should throw on duplicate email', async () => {
      mockRepository.save.mockRejectedValue(new DuplicateError());

      await expect(service.createUser(userData))
        .rejects.toThrow('Email already exists');
    });
  });
});

Integration Tests

describe('User API Integration', () => {
  let app: Application;
  let database: Database;

  beforeAll(async () => {
    database = await setupTestDatabase();
    app = createApp(database);
  });

  afterAll(async () => {
    await database.close();
  });

  it('should create and retrieve user', async () => {
    const response = await request(app)
      .post('/users')
      .send({ name: 'Test User', email: 'test@example.com' });

    expect(response.status).toBe(201);
    expect(response.body).toHaveProperty('id');

    const getResponse = await request(app)
      .get(`/users/${response.body.id}`);

    expect(getResponse.body.name).toBe('Test User');
  });
});

E2E Tests

describe('User Registration Flow', () => {
  it('should complete full registration process', async () => {
    await page.goto('/register');

    await page.fill('[name="email"]', 'newuser@example.com');
    await page.fill('[name="password"]', 'SecurePass123!');
    await page.click('button[type="submit"]');

    await page.waitForURL('/dashboard');
    expect(await page.textContent('h1')).toBe('Welcome!');
  });
});

Edge Case Testing

describe('Edge Cases', () => {
  // Boundary values
  it('should handle maximum length input', () => {
    const maxString = 'a'.repeat(255);
    expect(() => validate(maxString)).not.toThrow();
  });

  // Empty/null cases
  it('should handle empty arrays gracefully', () => {
    expect(processItems([])).toEqual([]);
  });

  // Error conditions
  it('should recover from network timeout', async () => {
    jest.setTimeout(10000);
    mockApi.get.mockImplementation(() =>
      new Promise(resolve => setTimeout(resolve, 5000))
    );

    await expect(service.fetchData()).rejects.toThrow('Timeout');
  });

  // Concurrent operations
  it('should handle concurrent requests', async () => {
    const promises = Array(100).fill(null)
      .map(() => service.processRequest());

    const results = await Promise.all(promises);
    expect(results).toHaveLength(100);
  });
});

Configuration

Performance Testing

describe('Performance', () => {
  it('should process 1000 items under 100ms', async () => {
    const items = generateItems(1000);

    const start = performance.now();
    await service.processItems(items);
    const duration = performance.now() - start;

    expect(duration).toBeLessThan(100);
  });

  it('should handle memory efficiently', () => {
    const initialMemory = process.memoryUsage().heapUsed;

    // Process large dataset
    processLargeDataset();
    global.gc(); // Force garbage collection

    const finalMemory = process.memoryUsage().heapUsed;
    const memoryIncrease = finalMemory - initialMemory;

    expect(memoryIncrease).toBeLessThan(50 * 1024 * 1024); // <50MB
  });
});

Security Testing

describe('Security', () => {
  it('should prevent SQL injection', async () => {
    const maliciousInput = "'; DROP TABLE users; --";

    const response = await request(app)
      .get(`/users?name=${maliciousInput}`);

    expect(response.status).not.toBe(500);
    // Verify table still exists
    const users = await database.query('SELECT * FROM users');
    expect(users).toBeDefined();
  });

  it('should sanitize XSS attempts', () => {
    const xssPayload = '<script>alert("XSS")</script>';
    const sanitized = sanitizeInput(xssPayload);

    expect(sanitized).not.toContain('<script>');
    expect(sanitized).toBe('<script>alert("XSS")</script>');
  });
});

Usage Examples

Example 1: TDD Workflow

// Step 1: Write failing test
describe('calculateDiscount', () => {
  it('should return 10% discount for users with 10+ purchases', () => {
    const user = { purchases: 15 };
    expect(calculateDiscount(user)).toBe(0.1);
  });
});

// Step 2: Run test (fails)
// Step 3: Implement minimal code
function calculateDiscount(user) {
  return user.purchases >= 10 ? 0.1 : 0;
}

// Step 4: Run test (passes)
// Step 5: Refactor if needed

Example 2: Complete Test Suite

/**
 * @test User Registration
 * @description Validates the complete user registration flow
 * @prerequisites
 *   - Database is empty
 *   - Email service is mocked
 * @steps
 *   1. Submit registration form with valid data
 *   2. Verify user is created in database
 *   3. Check confirmation email is sent
 *   4. Validate user can login
 * @expected User successfully registered and can access dashboard
 */
describe('User Registration', () => {
  it('should register user successfully', async () => {
    // Implementation
  });
});

Execution Checklist

  • Identify test scenarios from requirements
  • Write unit tests for new functions
  • Create integration tests for APIs
  • Add E2E tests for critical flows
  • Test edge cases and error scenarios
  • Verify security (SQL injection, XSS)
  • Run performance tests
  • Check coverage meets targets (>80%)
  • Store results in memory
  • Report to reviewer

Best Practices

  1. Test First: Write tests before implementation (TDD)
  2. One Assertion: Each test should verify one behavior
  3. Descriptive Names: Test names should explain what and why
  4. Arrange-Act-Assert: Structure tests clearly
  5. Mock External Dependencies: Keep tests isolated
  6. Test Data Builders: Use factories for test data
  7. Avoid Test Interdependence: Each test should be independent
  8. Report Results: Always share test results via memory

Error Handling

ScenarioRecovery
Test timeoutIncrease timeout or optimize test
Flaky testAdd retries or fix race condition
Mock failureVerify mock setup
Coverage gapAdd missing tests

Metrics & Success Criteria

  • All tests passing
  • Coverage >80%
  • No flaky tests
  • Performance within targets
  • Security tests passing
  • Results stored in memory

Integration Points

MCP Tools

// Report test status
  action: "store",
  key: "swarm/tester/status",
  namespace: "coordination",
  value: JSON.stringify({
    agent: "tester",
    status: "running tests",
    test_suites: ["unit", "integration", "e2e"],
    timestamp: Date.now()
  })
}

// Share test results
  action: "store",
  key: "swarm/shared/test-results",
  namespace: "coordination",
  value: JSON.stringify({
    passed: 145,
    failed: 2,
    coverage: "87%",
    failures: ["auth.test.ts:45", "api.test.ts:123"]
  })
}

// Check implementation status
  action: "retrieve",
  key: "swarm/coder/status",
  namespace: "coordination"
}

Performance Testing

// Run performance benchmarks
  type: "test",
  iterations: 100
}

// Monitor test execution
  format: "detailed"
}

Hooks

# Pre-execution
echo "🧪 Tester agent validating: $TASK"
if [ -f "jest.config.js" ] || [ -f "vitest.config.ts" ]; then
  echo "✓ Test framework detected"
fi

# Post-execution
echo "📋 Test results summary:"
npm test -- --reporter=json 2>/dev/null | jq '.numPassedTests, .numFailedTests' 2>/dev/null || echo "Tests completed"

Related Skills

Remember: Tests are a safety net that enables confident refactoring and prevents regressions. Invest in good tests--they pay dividends in maintainability. Coordinate with other agents through memory.


Version History

  • 1.0.0 (2026-01-02): Initial release - converted from tester.md agent

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

补充不同宿主或平台的使用分布数据

能力 5

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

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

平台分布

Claude Code

27.06%
按下载量换算43

windsurf

21.75%
按下载量换算34

trae

17.45%
按下载量换算28

OpenCode

11.26%
按下载量换算18

Cursor

7.57%
按下载量换算12

Codex

3.2%
按下载量换算5

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/vamseeachanta/workspace-hub --skill core-tester;npx skills add vamseeachanta/workspace-hub --skill "core-tester" 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills