Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更新覆盖率报告而不覆盖它_Python_Code Coverage - Fatal编程技术网

Python 更新覆盖率报告而不覆盖它

Python 更新覆盖率报告而不覆盖它,python,code-coverage,Python,Code Coverage,我创建覆盖率报告的方法是: source coverage_setup.sh setenv COVERAGE_PROCESS_START .coveragerc myscript.py --f 1 unsetenv COVERAGE_PROCESS_START 设置脚本只是将覆盖模块(3.6.3)添加到路径,并将PYTHONPATH设置到覆盖模块 我有一个(非python)脚本,可以执行myscript.pymultpul次,例如: myscript.py --f 1 myscript.py

我创建覆盖率报告的方法是:

source coverage_setup.sh
setenv COVERAGE_PROCESS_START .coveragerc
myscript.py --f 1
unsetenv COVERAGE_PROCESS_START
设置脚本只是将覆盖模块(3.6.3)添加到
路径
,并将
PYTHONPATH
设置到覆盖模块

我有一个(非python)脚本,可以执行
myscript.py
multpul次,例如:

myscript.py --f 1
myscript.py --f 2
myscript.py --f 3
我希望每次执行都更新
.coveragerc
文件,而不是覆盖它。我找不到这样做的旗帜。我还尝试将
覆盖率\u过程\u开始
更改为:

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
时):

有没有办法告诉覆盖率模块更新同一份报告而不是覆盖它?
如果没有,是否有可行的解决方法?

首先,如果您只是运行Python文件,则不需要覆盖\u进程\u启动。这样做:

coverage run myscript.py --f 1
其次,您可以使用
--append
标志将数据累积到数据文件中,而不是每次运行都重新开始:

coverage run --append myscript.py --f 1
coverage run --append myscript.py --f 1