跳到主要内容
知仓学习社ZHICANG

pytest-config

Provides standardized pytest config, reusable fixtures, and CI integration patterns. Use when setting up or auditing a Python plugin's test infrastr…

不碰外部(只输出文字)无严重或高危命中athola/claude-night-market

它会碰到什么

扫了多少6 个文本文件,17 KB
它会碰到什么不碰外部(只输出文字)
命中总数5 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

Table of Contents

  • [Quick Start](#quick-start)
  • [Detailed Patterns](#detailed-patterns)
  • [Integration with Other Skills](#integration-with-other-skills)
  • [Exit Criteria](#exit-criteria)
  • [Troubleshooting](#troubleshooting)

Pytest Configuration Patterns

Standardized pytest configuration and patterns for consistent testing infrastructure across Claude Night Market plugins.

When To Use

  • Setting up pytest configuration and fixtures
  • Configuring conftest.py patterns for test infrastructure

When NOT To Use

  • Non-Python projects or projects using other test frameworks
  • Simple scripts that do not need test infrastructure

Quick Start

Basic pyproject.toml Configuration

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = [
    "-v",
    "--cov=src",
    "--cov-report=term-missing",
    "--cov-fail-under=80",
    "--strict-markers",
]
markers = [
    "unit: marks tests as unit tests",
    "integration: marks tests as integration tests",
    "slow: marks tests as slow running",
]

[tool.coverage.run]
source = ["src"]
omit = ["*/tests/*", "*/migrations/*", "*/__pycache__/*"]
branch = true

[tool.coverage.report]
exclude_lines = [
    "pragma: no cover",
    "def __repr__",
    "def __str__",
    "raise NotImplementedError",
    "if __name__ == .__main__.:",
    "if TYPE_CHECKING:",
    "class .*\\bProtocol\\):",
    "@(abc\\.)?abstractmethod",
]
precision = 2
show_missing = true

Verification: Run pytest --collect-only to verify discovery, pytest -v --co -q for markers, and pytest --cov for coverage thresholds.

Detailed Patterns

For detailed implementation patterns, see:

  • [Conftest Patterns](modules/conftest-patterns.md) - Conftest.py templates, fixtures, test markers, and directory structure
  • [Git Testing Fixtures](modules/git-testing-fixtures.md) - GitRepository helper class for testing git workflows
  • [Mock Fixtures](modules/mock-fixtures.md) - Mock tool fixtures for Bash, TodoWrite, and other Claude Code tools
  • [CI Integration](modules/ci-integration.md) - GitHub Actions workflows and test commands for automated testing
  • Module Index: See modules/README.md for module organization overview

Integration with Other Skills

This skill provides foundational patterns referenced by:

  • parseltongue:python-testing - Uses pytest configuration and fixtures
  • pensive:test-review - Uses test quality standards
  • sanctum:test-* - Uses conftest patterns and Git fixtures

Reference in your skill's frontmatter:

dependencies: [leyline:pytest-config, leyline:testing-quality-standards]

Exit Criteria

  • pytest configuration standardized across plugins
  • conftest.py provides reusable fixtures
  • test markers defined and documented
  • coverage configuration enforces quality thresholds
  • CI/CD integration configured for automated testing

Troubleshooting

Common Issues

Tests not discovered

Ensure test files match pattern test_.py or _test.py. Run pytest --collect-only to verify.

Import errors

Check that the module being tested is in PYTHONPATH or install with pip install -e .

Async tests failing

Install pytest-asyncio and decorate test functions with @pytest.mark.asyncio

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。