You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置.coveragerc和setup.cfg,让pytest识别tests目录并执行测试

解决pytest找不到测试文件的配置方案

首先,你需要确保项目里安装了pytest-runner,它能让setuptools的test命令正确调用pytest。先安装它:

pip install pytest-runner

接下来,调整你的配置文件,分两个关键文件修改:

1. 配置setup.py

在setup.py里添加必要的依赖和测试套件配置,确保setuptools知道如何触发pytest:

from setuptools import setup, find_packages

setup(
    name="package_name",
    version="0.1",
    packages=find_packages(),
    # 声明测试所需依赖
    tests_require=["pytest", "coverage"],
    # 确保安装时先装pytest-runner
    setup_requires=["pytest-runner"],
    # 指定测试套件,让setuptools调用pytest
    test_suite="tests",
)

2. 配置setup.cfg

这个文件是核心,要告诉pytest去哪里找测试文件,同时配置coverage的行为:

[metadata]
name = package_name

[options]
packages = find:
test_suite = tests

[options.packages.find]
where = package_name

[pytest]
# 指定测试文件所在目录
testpaths = tests
# 可选:指定测试文件的命名规则,确保pytest能识别
python_files = test_*.py

[coverage:run]
# 指定要统计覆盖率的源代码目录
source = package_name
# 确保覆盖测试命令触发的运行
branch = True

[coverage:report]
# 生成报告时显示详细信息
show_missing = True

3. 验证命令运行

现在你就可以用这条命令运行所有测试并生成覆盖率数据了:

coverage run setup.py test

运行完之后,还可以用这条命令查看覆盖率报告:

coverage report

如果还是有问题,可以检查以下几点:

  • 确保tests目录下的测试文件都是以test_开头的(pytest默认识别这个命名规则)
  • 确认package_name目录下的__init__.py存在(哪怕是空文件),这样find_packages能正确识别包
  • 检查是否在虚拟环境中运行,避免依赖冲突

内容的提问来源于stack exchange,提问作者Jonathan DEKHTIAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:05:02