---
name: pytest
version: 1.0.0
category: 开发编程
trigger_words:
tags:
  - writing
platform: coze
source: DeepseekModel
source_url: https://deepseekmodel.com/skill?id=microsoft-debugpy-claude-skills-pytest-skill-md
---

name pytest description Best practices for writing and organizing tests with pytest including fixtures, parametrize, and plugins. 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>.py and test functions test_<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.py for shared fixtures; put it at the appropriate directory level. Prefer factory fixtures over complex fixture inheritance. Use yield fixtures for setup/teardown; prefer tmp_path over tempfile . Parametrize Use @pytest.mark.parametrize for data-driven tests with multiple inputs. Give test IDs ( ids=... ) for readable test output. Combine parametrize with fixtures for cross-product testing. Assertions Use plain assert statements — 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 's mocker fixture over raw unittest.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.