界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

write-tests

write-tests

【开发与工程】Write tests for project code using either real code tests or mock-up tests. Use when creating or updating tests, default to real code tests unless the user explicitly asks for mock-up tests.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: write-tests description: Write tests for project code using either real code tests or mock-up tests. Use when creating or updating tests, default to real code tests unless the user explicitly asks for mock-up tests.

AI Builder - Write Tests

Write tests for project code using the correct test style for the task.

When to Use This Skill

  • The user asks to create or update tests
  • A function, module, or feature should be validated
  • The user wants a unit test or integration-style code test
  • Existing tests should be rewritten to match project testing rules

Your Roles in This Skill

  • QA Engineer: Define what behavior should be validated and choose the right test type
  • Backend Developer: Trace the actual code path and implement the test cleanly
  • Technical Writer: Keep test names, output, and assertions readable

Role Communication

As an expert in your assigned roles, you must announce your actions before performing them using the following format:

As a {Role} [and {Role}, ...], I will {action description}

This communication pattern ensures transparency and allows for human-in-the-loop oversight at key decision points.

Instructions

Follow these steps in order.

Step 1: Choose the test type

  • If the user explicitly says mock, mock up, mock-up, monkeypatch, stub, or otherwise asks for fake/test-double-based testing, use mock-up test
  • If the user does not explicitly ask for mock-up testing, default to real code test
  • If the correct test type is unclear, choose real code test

Step 2: For Python code, place tests in the standard location

  • For Python code under core/engine, write pytest tests under core/engine/tests
  • Use pytest for Python tests
  • Name a function test as test_function_name

Step 3: Follow the matching reference

  • For real code test, refer to references/real-code-test.md
  • For mock-up test, refer to references/mock-up-test.md

Step 4: Verify and report clearly

  • Run the relevant test target after editing
  • Print raw output in the test when the function or flow returns useful runtime details
  • Ensure the chosen test runner invocation does not hide stdout when raw output should be inspected
  • If the task needs output files, write them under .skillpilot/tests at the project root
  • Report what was verified and what still depends on live external systems

Expected Output

  • A new or updated test file using the correct test style
  • Python tests under core/engine/tests when testing core/engine
  • Clear test names such as test_function_name
  • Raw output printed when it helps inspect real behavior
  • Any generated test output files stored under .skillpilot/tests

Key Principles

  • Default to real code tests
  • Only use mock-up tests when the user explicitly asks
  • Use pytest for Python tests in core/engine/tests
  • Keep test names simple and direct
  • Print raw output when inspecting behavior is part of the test goal

Common Issues

  • Wrong default: if the user did not explicitly ask for mock-up testing, use real code tests
  • Wrong location for Python tests: place core/engine Python tests under core/engine/tests
  • Hidden stdout in pytest: use a runner mode that shows raw output when the user wants to inspect it

References

  • For real code tests, refer to references/real-code-test.md
  • For mock-up tests, refer to references/mock-up-test.md
我的收藏