pyt*_*had 2 python coverage.py
我有一个目录tests,其中包含许多不同的测试名称test_*.
我试图跑,coverage run tests但它不起作用.
如何运行单个命令覆盖目录中的多个文件?
Nir*_*mal 10
这是一个完整示例,其中包含来自同一 PWD 的所有阶段的命令。通过一个经过处理的示例,我还包括运行覆盖范围之前和之后的测试和报告部分。我运行了以下步骤,它在 osx/mojave 上运行良好。
- 发现并运行 test 目录中的所有测试
$ python -m unittest discover <directory_name>
或者发现并运行“目录”中的所有测试,其中测试具有文件名模式 *_test.py
$ python -m unittest discover -s <directory> -p '*_test.py'
- 运行覆盖所有模块
$ coverage run --source=./test -m unittest discover -s <directory>/
- 从同一目录获取覆盖率报告 - 无需 cd。
$ coverage report -m
请注意,在上面的示例中,测试目录不必命名为“test”,测试模块也是如此。
这里的答案都不适合我。我发现覆盖率和 pytest 工作得很好:
coverage run -m pytest
Run Code Online (Sandbox Code Playgroud)
这是在项目文件夹中运行的。它能够找到名为“tests”的文件夹,并__init__在其中运行所有测试(该测试被分成多个 python 文件并有一个 .py 文件)。要查看报告运行:
coverage report
Run Code Online (Sandbox Code Playgroud)