繁体   English   中英

对于带有 pytest-cov 的 pytest:如何为覆盖版本指定 parallel=True >= 5

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM