[英]For pytest with pytest-cov: how to specify parallel=True for coverage version >= 5
在pytest-cov 文档中它说:
请注意,此插件控制一些选项,在配置文件中设置选项将无效。 这些包括指定要测量的源(源选项)和所有数据文件处理(data_file 和并行选项)。
但是它没有说明如何更改这些选项。 有没有办法改变它(parallel=True)? 我想更改此设置,因为在覆盖范围从 < 5 升级到最新 (5.1) 后,我得到了这些:
Failed to generate report: Couldn't use data file '/path/to/jenkins/workspace/pr/or/branch/.coverage': no such table: line_bits
注意:使用coverage < 5没有这个问题
我也尝试使用以下内容添加.coveragerc但仍然遇到相同的问题。
[run]
parallel = True
jenkins中的运行方式:
pytest ./tests --mpl -n 4 \
--junitxml=pyTests.xml --log-cli-level=DEBUG -s \
--cov=. --cov-report --cov-report html:coverage-reports
这是由于pytest-cov
使用coverage combine
,它结合了所有覆盖结果:并行地混合了其他运行的结果,这些结果可能完成也可能未完成,并且在任何情况下都是无关紧要的。
我认为如果您遇到问题,可能是因为您并行运行多个测试,例如 Python 的多个版本。
在这种情况下,通过为每次运行指定唯一的COVERAGE_FILE
很容易解决,例如:
export COVERAGE_FILE=.coverage.3.7
对于 Python 3.7 运行,等等。
参见: https://github.com/nedbat/coveragepy/issues/883#issuecomment-650562896
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.