Python覆盖率:运行多个测试
我想知道在使用python coverage config(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
.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