簡體   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