我有一个看起来像这样的源代码结构
然后,如果我针对测试文件夹运行覆盖率
coverage run --source test -m py.test
它给了我
$ poetry run coverage report
Name Stmts Miss Cover
--------------------------------------------------
test/default/test_default.py 35 1 97%
--------------------------------------------------
TOTAL 35 1 97%
如果我针对源 (src
) 文件夹运行它
$ poetry run coverage report
Name Stmts Miss Cover
---------------------------------
src/main.py 105 105 0%
---------------------------------
TOTAL 105 105 0%
我没有得到任何报道。
在我的测试中,我将 main.py
作为子进程运行。
然后我切换到在 main()
中运行 main.py
函数,结果覆盖结果是相同的。
我哪里错了?
答案 0 :(得分:-1)
稍微挖掘一下,结合Coverage official tutorial和this github thread,问题解决了。
cd /path/to/project_root
poetry run coverage run --omit '*virtualenvs*' -m pytest
poetry run coverage report -m
请注意,我使用诗歌来管理我的依赖项,因此如果您不使用诗歌,则应删除 poetry run
。