使用python coverage.py,我喜欢做类似的事情:
const path = require('path')
module.exports = {
entry: './app/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.js$/,
use: 'babel-loader',
exclude: /(node_modules)/,
}
]
},
devServer: {
contentBase: 'dist',
}
}
然后,使用tox,没有我的python2特定代码计数对我的覆盖率报告....有什么像
if six.PY3:
from functools import lru_cache
else:
from .lru_cache_local imoprt lru_cache
可用?
谢谢!
答案 0 :(得分:1)
您可以通过配置文件provide your own "no cover" lines。
Df row1 : Ravi Computers 20
Df row2 : Jon Electronics 21
Df row3 : Sam arts 20
然后您可以选择是使用Python 2配置文件,还是通过the --rcfile
option使用Python 3配置文件。
Line1: Index:Ravi
Line2: Ravi Computers 20
Line3: Index:Jon
Line4: Jon Electronics 21
Line5: Index:Sam
Line6: Sam arts 20
答案 1 :(得分:1)
不是排除行,而是最好测量python 2和python 3的覆盖范围,然后将它们组合起来。
答案 2 :(得分:1)
.coveragerc文件将扩展环境变量,因此您可以这样做:
[report]
exclude_lines =
pragma: no cover
pragma: nocover_${PRAGMA_VERSION}
然后像这样运行coverage.py:
PRAGMA_VERSION=py2 coverage report
答案 3 :(得分:0)
感谢大家的灵感....我的解决方案最终看起来像这样。将.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} \
...