如何解决我如何在coverage 和.coveragerc 中生成两种不同的报告?
我有一个包,我需要在其中生成两个不同的报告,一个用于整个存储库,另一个仅用于核心。包是这样的:
source/
core/
__init__.py
config.py
foo.py
gui/
__init__.py
...
locale/
__init__.py
...
tests/
all/
__init__.py
...
assets/
__init__.py
...
gui/
__init__.p
...
core/
__init__.py
test_foo.py
...
__init__.py
utils.py
...
.coveragerc
setup.py
tox.ini
在 tox.ini
我有这个代码:
[tox]
envlist = py27,py35,py36,py37
skip_missing_interpreters = true
[testenv]
deps =
coverage
pycairo<2.0.0,>=1.10.0
commands_pre =
coverage erase
commands = coverage run ./setup.py pytest
commands_post =
coverage report -m
coverage html
coverage XML
...
[testenv:py36]
commands_pre = {[testenv]commands_pre}
commands =
{[testenv]commands}
commands_post = {[testenv]commands_post}
我想这里最重要的是这条线
coverage run ./setup.py pytest
我的 .coveragerc
看起来像:
[run]
source=
source
omit =
*__init__*
*/usr/local/lib*
*/test*
还有 pytest.ini
[pytest]
testpaths = tests
原则上这确实有效,但是,我需要与此并行生成另一个仅针对核心的覆盖测试(仅针对源 source/core
并在 test/core
中运行测试)。
我尝试在 tox.ini
中创建一个新环境,然后运行:
commands = coverage run --source=source/core ./setup.py pytest tests/core
我得到了:
Coverage.py warning: No data was collected. (no-data-collected)
invalid command name 'tests/core'
ERROR: InvocationError for command
报告给了我 0%
另一方面,如果我运行 coverage run --source=source/core ./setup.py pytest
,它将执行所有测试,包括 gui、core 和其他我不感兴趣的东西在此报告中,我收到了分段错误和另一个调用错误(可能由与此问题无关的包核心生成)
这几乎不起作用的唯一方法是通过设置修改 .coveragerc
:
source=
source/core
然后运行 coverage run ./setup.py pytest
的作品我已经牺牲了原来的覆盖率测试。
关于如何让这两个覆盖率报告独立运行(一个用于 WHOLE 包,另一个仅用于核心)以及如果可能,在 GitLab 中为它提供两个不同的徽章有什么想法吗?
非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。