python - 更新覆盖率报告而不覆盖它
问题描述
我创建覆盖率报告的方式是:
source coverage_setup.sh
setenv COVERAGE_PROCESS_START .coveragerc
myscript.py --f 1
unsetenv COVERAGE_PROCESS_START
安装脚本只是将覆盖模块(3.6.3)添加到覆盖模块PATH
并将 设置PYTHONPATH
为覆盖模块。
我有一个执行 multpul 时间的(非 python)脚本,myscript.py
例如:
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
有没有办法告诉覆盖模块更新相同的报告而不是覆盖它?如果没有,是否有可行的解决方法?
解决方案
首先,如果您只是运行 Python 文件,则不需要 COVERAGE_PROCESS_START。做这个:
coverage run myscript.py --f 1
其次,您可以使用该--append
标志将数据累积到数据文件中,而不是每次运行都重新开始:
coverage run --append myscript.py --f 1
推荐阅读
- rhel7 - HugePages 的总数从 6000 减少到 16,免费页面减少到 0
- php - Apache:如何为 .js 和 .css 文件指定缓存?
- c# - 将日志文件存储在网络上,而不是 windows/system32
- c# - 引用空间创建的变量将存储在哪里?他们将如何被引用到他们的参考空间?
- sql - SQL - 获取每天的先前金额
- java - 在这段代码中,我想在保存按钮单击时刷新我的自定义列表视图
- c++ - 如何正确迭代 3D 向量,仅使用 C++ 中的迭代器?
- reactjs - React-Redux-Firebase 新钩子
- python - 如何以编程方式将本地文件上传为 Django 模型字段?
- java - 装饰一个具体的班级,不好的做法?