我创建覆盖率报告的方式是:
source coverage_setup.sh
setenv COVERAGE_PROCESS_START .coveragerc
myscript.py --f 1
unsetenv COVERAGE_PROCESS_START
设置脚本仅将覆盖模块(3.6.3)添加到PATH
并将PYTHONPATH
设置到覆盖模块。
我有一个执行myscript.py
多次的(非python)脚本,例如:
myscript.py --f 1
myscript.py --f 2
myscript.py --f 3
我希望每个执行都更新.coveragerc
文件而不是覆盖它。我找不到这样做的标志。我还尝试将COVERAGE_PROCESS_START
更改为:
source coverage_setup.sh
setenv COVERAGE_PROCESS_START .coveragerc1
myscript.py --f 1
setenv COVERAGE_PROCESS_START .coveragerc2
myscript.py --f 2
setenv COVERAGE_PROCESS_START .coveragerc3
myscript.py --f 3
unsetenv COVERAGE_PROCESS_START
然后合并报告。但是覆盖率报告失败,并出现以下错误(执行myscript.py
时):
Error in sitecustomize; set PYTHONVERBOSE for traceback:
CoverageException: Couldn't read '.coveragerc1' as a config file
是否有一种方法可以告诉覆盖率模块更新同一报告而不覆盖它? 如果没有,是否有可行的解决方法?
答案 0 :(得分:0)
首先,如果您只是运行Python文件,则不需要COVERAGE_PROCESS_START。这样做:
coverage run myscript.py --f 1
第二,您可以使用--append
标志将数据累积到数据文件中,而不是每次运行都重新开始:
coverage run --append myscript.py --f 1