是否有一个特定于python版本的“#布拉格语nocover“;可用于python覆盖工具?
使用python coverage.py,我想做如下工作:是否有一个特定于python版本的“#布拉格语nocover“;可用于python覆盖工具?,python,coverage.py,Python,Coverage.py,使用python coverage.py,我想做如下工作: if six.PY3: from functools import lru_cache else: from .lru_cache_local imoprt lru_cache 然后,使用tox,在我的覆盖率报告中没有我的python2特定代码计数。。。。有类似的吗 # pragma: nocover_py2 # pragma: nocover_py3 有空吗 谢谢 您可以通过配置文件 # py2.coverage
if six.PY3:
from functools import lru_cache
else:
from .lru_cache_local imoprt lru_cache
然后,使用tox,在我的覆盖率报告中没有我的python2特定代码计数。。。。有类似的吗
# pragma: nocover_py2
# pragma: nocover_py3
有空吗
谢谢 您可以通过配置文件
# py2.coveragerc
[report]
exclude_lines =
pragma: no cover
pragma: nocover_py2
然后,您可以通过选择是使用Python2配置文件,还是使用Python3配置文件
与其排除行,不如测量python 2和python 3的覆盖率,然后将它们结合起来。coveragerc文件将扩展环境变量,因此可以执行以下操作:
[report]
exclude_lines =
pragma: no cover
pragma: nocover_${PRAGMA_VERSION}
然后像这样运行coverage.py:
PRAGMA_VERSION=py2 coverage report
谢谢大家的鼓励。。。。我的解决方案最终是这样的。将其推广到.py2和.py3会很好,但是tox似乎没有提供大量的执行环境参数词汇表:( .coveragerc_py27
...
[report]
exclude_lines =
pragma: nocover
pragma: py2_nocover
....
.coveragerc_py34
...
[run]
omit = *_py2.py
[report]
exclude_lines =
pragma: nocover
pragma: py3_nocover
....
tox.ini
...
[testenv]
commands = pytest \
--cov-config .coveragerc_{envname} \
...
...
[testenv]
commands = pytest \
--cov-config .coveragerc_{envname} \
...