测量单位使用Py.Test测试特定文件的覆盖范围

Rvd*_*vdK 3 python code-coverage pytest

我正试图用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 /站点包/测试/

  • test_car.py
  • conftest.py

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

python -m pytest --cov python2.7/site-packages/ python2.7/site-packages/test/test_car.py
Run Code Online (Sandbox Code Playgroud)

但这导致了网站包中所有python文件的覆盖范围(有点明显).

python -m pytest --cov python2.7/site-packages/car.py python2.7/site-packages/test/test_car.py
Run Code Online (Sandbox Code Playgroud)

这只会导致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
Run Code Online (Sandbox Code Playgroud)

但是Py.Test不知道如何解析和使用这个参数.)

Rvd*_*vdK 8

我找到了解决方案.您可以提供多个--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
Run Code Online (Sandbox Code Playgroud)

  • @Tengis:虽然你可以,但不建议 - 解决的问题应该有答案,否则搜索不会找到它 (10认同)