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

时间:2017-06-28 21:05:59

标签: python coverage.py

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

我试图运行coverage run tests,但它不起作用。

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

4 个答案:

答案 0 :(得分:6)

您可以使用--source实现这一目标。例如:coverage run --source=tests/ <run_tests>

答案 1 :(得分:3)

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

答案 2 :(得分:3)

这里没有答案对我很有用。我发现coverage和pytest的效果很好:

coverage run -m pytest

这是在项目文件夹中运行的。它能够找到名为tests的文件夹,并在其中运行所有测试(被拆分为多个python文件并包含__init__。py文件)。要查看报告运行,请执行以下操作:

coverage report

答案 3 :(得分:1)

这是一个完整的示例,其中来自同一PWD的命令集中在一处。通过一个经过处理的示例,我还将包括在运行覆盖率之前和之后的测试和报告部分。我执行了以下步骤,在osx / mojave上一切正常。

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

$ python -m unittest discover <directory_name>

  

或   在文件名为* _test.py

的测试中发现并运行“目录”中的所有测试

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

  
      
  1. 运行所有模块的报道
  2.   

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

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

$ coverage report -m

  

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