使用Py.Test测量特定文件的单元测试覆盖率

7

我正在尝试使用 Py.Test 检索我的单元测试覆盖率。问题在于,我还获取了其他我不关心的 Python 文件的覆盖信息。

这是我的文件结构示例。在这种情况下,我想要测试:car.py、wheel.py 和 steer.py

python2.7/site-packages/

  • car.py
  • wheel.py
  • steer.py
  • coverage.py (来自 pypi.python.org)
  • yaml (Python 的 yaml 库,来自 pypi.python.org)
  • pytest-2.5.2-py2.7.egg (Python 的 py.test 库)
  • 以及更多

python2.7/site-packages/test/

  • test_car.py
  • conftest.py

现在我使用 Py.Test 执行测试:

python -m pytest --cov python2.7/site-packages/ python2.7/site-packages/test/test_car.py

但这会导致覆盖 site-packages 中所有 Python 文件(有点显而易见)。
python -m pytest --cov python2.7/site-packages/car.py python2.7/site-packages/test/test_car.py

这会导致只覆盖car.py,而不是我需要的所有文件。
如何使用Py.Test来仅测量特定文件的覆盖率?
(我也尝试过:
python -m pytest --cov python2.7/site-packages/car.py,python2.7/site-packages/wheel.py python2.7/site-packages/test/test_car.py

但是 Py.Test 不知道如何解析和使用这个参数。
1个回答

11

我找到了解决方法。你可以提供多个 --cov file 参数。

python -m pytest \
  --cov python2.7/site-packages/car.py \
  --cov python2.7/site-packages/wheel.py \
  --cov python2.7/site-packages/steer.py \
  python2.7/site-packages/test/test_car.py

10
@Tengis:虽然可以这样做,但不建议这样——解决的问题应该有答案,否则搜索无法找到它。 - Hubert Kario
1
它似乎没有遵循那个标志,我仍然会得到整个项目的报告,而不是我传递的单个文件。 - tutuca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接