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