如何在目录上运行coverage.py?

pyt*_*had 2 python coverage.py

我有一个目录tests,其中包含许多不同的测试名称test_*.

我试图跑,coverage run tests但它不起作用.

如何运行单个命令覆盖目录中的多个文件?

Nir*_*mal 10

这是一个完整示例,其中包含来自同一 PWD 的所有阶段的命令。通过一个经过处理的示例,我还包括运行覆盖范围之前和之后的测试和报告部分。我运行了以下步骤,它在 osx/mojave 上运行良好。

  1. 发现并运行 test 目录中的所有测试

$ python -m unittest discover <directory_name>

或者发现并运行“目录”中的所有测试,其中测试具有文件名模式 *_test.py

$ python -m unittest discover -s <directory> -p '*_test.py'

  1. 运行覆盖所有模块

$ coverage run --source=./test -m unittest discover -s <directory>/

  1. 从同一目录获取覆盖率报告 - 无需 cd。

$ coverage report -m

请注意,在上面的示例中,测试目录不必命名为“test”,测试模块也是如此。


900*_*000 6

使用--include仅包括在特定目录中的文件。它匹配文件路径,因此它可以匹配子目录。


小智 6

你可以实现这一点--source.例如:coverage run --source=tests/ <run_tests>


ern*_*cyp 5

这里的答案都不适合我。我发现覆盖率和 pytest 工作得很好:

coverage run -m pytest
Run Code Online (Sandbox Code Playgroud)

这是在项目文件夹中运行的。它能够找到名为“tests”的文件夹,并__init__在其中运行所有测试(该测试被分成多个 python 文件并有一个 .py 文件)。要查看报告运行:

coverage report
Run Code Online (Sandbox Code Playgroud)