3

pytest-cov 文档中它说:

请注意,此插件控制一些选项,在配置文件中设置选项将无效。其中包括指定要测量的源(源选项)和所有数据文件处理(data_file 和并行选项)。

但是它没有说明如何更改这些选项。有没有办法改变它(平行=真)?我想更改它,因为在覆盖范围从 < 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
4

1 回答 1

1

这是由于pytest-covusing coverage combine,它结合了所有覆盖结果:并行地,它混合了其他运行的结果,这些结果可能完成也可能不完成,并且在任何情况下都是无关紧要的。

我认为如果您遇到问题,可能是因为您正在并行运行多个测试,例如多个 Python 版本。

COVERAGE_FILE在这种情况下,可以通过为每次运行指定唯一值来轻松解决,例如:

export COVERAGE_FILE=.coverage.3.7

对于 Python 3.7 运行,依此类推。

见:https ://github.com/nedbat/coveragepy/issues/883#issuecomment-650562896

于 2020-06-27T19:50:38.807 回答