
pytest
Best practices for writing and organizing tests with pytest including fixtures, parametrize, and plugins.
- Installs
- 64
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/microsoft/debugpy --skill pytest- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads pytest automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Skill: pytest
Best practices for writing and organizing tests with pytest including fixtures, parametrize, and plugins.
When to Use
Apply this skill when writing and organizing tests with pytest — fixtures, parametrize, markers, plugins, and test structure.
Test Organization
- Place tests in a
tests/directory mirroring the source structure. - Name test files
test_<module>.pyand test functionstest_<behavior>(). - Group related tests in classes only when they share fixtures/setup.
Fixtures
- Define fixtures at the narrowest scope needed (
function>class>module>session). - Use
conftest.pyfor shared fixtures; put it at the appropriate directory level. - Prefer factory fixtures over complex fixture inheritance.
- Use
yieldfixtures for setup/teardown; prefertmp_pathovertempfile.
Parametrize
- Use
@pytest.mark.parametrizefor data-driven tests with multiple inputs. - Give test IDs (
ids=...) for readable test output. - Combine
parametrizewith fixtures for cross-product testing.
Assertions
- Use plain
assertstatements — pytest rewrites them for clear failure messages. - Use
pytest.raises(ExceptionType, match=...)for exception testing. - Use
pytest.approx()for floating-point comparisons.
Plugins
- Common plugins:
pytest-cov,pytest-mock,pytest-asyncio,pytest-xdist,pytest-timeout. - Use
pytest-mock'smockerfixture over rawunittest.mock.patch.
Pitfalls
- Don't use
session-scoped fixtures for mutable state. - Don't assert on implementation details — test observable behavior.
- Avoid test interdependence; each test should be runnable in isolation.
FAQ
What does the pytest skill do?
Best practices for writing and organizing tests with pytest including fixtures, parametrize, and plugins.
How do I install pytest?
Run npx skills add https://github.com/microsoft/debugpy --skill pytest in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/pytest/ (personal) or .claude/skills/pytest/ (project).
Which AI agents can use pytest?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is pytest safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains pytest?
It is published by microsoft in microsoft/debugpy, and it is an official skill from the maker of the technology it covers. It has 64 recorded installs.
More from microsoft/debugpy
django
microsoft/debugpy
Open the skill to read its SKILL.md instructions.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work