Python覆盖率:运行多个测试

Python覆盖率:运行多个测试,python,code-coverage,Python,Code Coverage,我想知道在使用python coverage config(.coveragerc)文件时,是否有一种方法可以指定要运行的多个测试文件。 如果不是从配置文件,那么从命令行运行时是否可能? 目前,对于我正在使用的3个不同的单元测试文件: coverage run test1 coverage run -a test2 coverage run -a test3 能再短一点吗? 感谢编辑(2017-09-25):正如@ned Batcheld在评论中所说的,如果开始一个新项目,你会更喜欢,因为no

我想知道在使用python coverage config(
.coveragerc
)文件时,是否有一种方法可以指定要运行的多个测试文件。 如果不是从配置文件,那么从命令行运行时是否可能? 目前,对于我正在使用的3个不同的单元测试文件:

coverage run test1
coverage run -a test2
coverage run -a test3
能再短一点吗? 感谢编辑(2017-09-25):正如@ned Batcheld在评论中所说的,如果开始一个新项目,你会更喜欢,因为nose没有得到维护

通过查看,看起来
coverage
支持的唯一模式是使用每个命令运行特定模块

您可以使用测试框架(例如)来运行所有测试,并报告成功/失败率和总覆盖率

使用
pytest
1) 安装pytest、cov和pytest cov

pip install pytest
pip install coverage
pip install pytest-cov
2) 使用
--cov
标志,对需要测量其覆盖范围的每个模块或包运行
pytest
命令。例如:

pytest --cov=foo --cov=bar
样本输出:

Name     Stmts   Miss  Cover   Missing
--------------------------------------
bar.py       3      1    67%   5
foo.py       6      2    67%   9-11
--------------------------------------
TOTAL        9      3    67%
pytest
将找到与模式匹配的测试
test.*.py
(或其他,更多信息)

使用
nose
1) 安装机头和覆盖件

pip install nose
pip install coverage
2) 使用
--with coverage
标志运行
nosetests
命令

nosetests --with-coverage
示例输出(当具有单个模块foo.py时):

nosetests
可以使用一些启发式方法自动找到您的测试。例如,如果您将测试放在以
test
开头的文件名中,并通过继承
unittest.TestCase
创建测试用例,
nosetests
将找到它们。更多信息。

您可以通过pytest运行覆盖率…不要使用nose。它没有维护。现在就从pytest开始。
Name     Stmts   Miss  Cover
----------------------------
foo.py       6      2    67%
----------------------------------------------------------------------
Ran 1 test in 0.008s

OK