运行 使用单个命令测试和收集覆盖率报告

Run test and collect the coverage report using a single command

我正在使用 Coverage.py 包来收集覆盖率报告。

目前,我正在通过 运行 如下两个命令收集覆盖率报告:

venv) ☁  python-codelab [master] ⚡  coverage run /Users/ldu020/workspace/github.com/mrdulin/python-codelab/src/unittest/with-asyncio/test_person.py
test_create (__main__.TestPerson)
create person ... ok

----------------------------------------------------------------------
Ran 1 test in 0.002s

OK
(venv) ☁  python-codelab [master] ⚡  coverage report                                                                                                
Name                                       Stmts   Miss  Cover
--------------------------------------------------------------
src/unittest/with-asyncio/person.py            7      0   100%
src/unittest/with-asyncio/test_person.py      21      0   100%
--------------------------------------------------------------
TOTAL                                         28      0   100%
  1. coverage run
  2. coverage report

如您所见,我运行两个命令。我正在寻找一种能够 运行 测试并通过单个命令而不是两个命令收集覆盖率报告的方法。一些命令如:

coverage run --coverage script.py

怎么做?

荣誉属于@MarekSchwarz。

使用coverage run script.py && coverage report是一种方式。

例如

(venv) ☁  python-codelab [master] ⚡  coverage run /Users/ldu020/workspace/github.com/mrdulin/python-codelab/src/unittest/with-asyncio/test_person.py && coverage report -m        
test_create (__main__.TestPerson)
create person ... ok

----------------------------------------------------------------------
Ran 1 test in 0.003s

OK
Name                                       Stmts   Miss  Cover   Missing
------------------------------------------------------------------------
src/unittest/with-asyncio/person.py            7      0   100%
src/unittest/with-asyncio/test_person.py      21      0   100%
------------------------------------------------------------------------
TOTAL                                         28      0   100%