Python 无论我们在多进程产品上执行什么模块,都会得到不正确的覆盖率报告

Python 无论我们在多进程产品上执行什么模块,都会得到不正确的覆盖率报告,python,testing,automation,code-coverage,coverage.py,Python,Testing,Automation,Code Coverage,Coverage.py,我们有一个包含多个python脚本的产品,这些脚本作为不同的进程、子进程、守护进程在apache上使用mod wsgi执行。该产品运行在Debian9之上,脚本是用python2.7编写的。我试图在运行自动化或集成测试时使用覆盖率跟踪代码覆盖率 但,面临的问题是:每次都要为相同的.py文件获取报告。 我在我的sitecustomize.py文件中进行了以下配置,以确保在运行任何代码之前启动了覆盖率模块,但我无法获得相同代码的正确覆盖率报告。请在下面找到sitecustomize.py和cover

我们有一个包含多个python脚本的产品,这些脚本作为不同的进程、子进程、守护进程在apache上使用mod wsgi执行。该产品运行在Debian9之上,脚本是用python2.7编写的。我试图在运行自动化或集成测试时使用覆盖率跟踪代码覆盖率

但,面临的问题是:每次都要为相同的.py文件获取报告。 我在我的sitecustomize.py文件中进行了以下配置,以确保在运行任何代码之前启动了覆盖率模块,但我无法获得相同代码的正确覆盖率报告。请在下面找到sitecustomize.py和coveragerc配置

===========================

.保险人 方法1:覆盖率\u流程\u从/etc/python2.7/sitecustomize.py开始

import coverage
import os
os.putenv("COVERAGE_PROCESS_START","/etc/coverage/.coveragerc")
coverage.process_startup()
cov = coverage.Coverage(
branch=True,
include=[<List>],
omit=["*/__init__.py"]) 
cov.start()

def exit_handler():
cov.stop()
cov.save()
cov.report()

cov.html_report(directory="/opt/coverage") 
atexit.register(exit_handler)
方法2:coverage.start()来自/etc/python2.7/sitecustomize.py

import coverage
import os
os.putenv("COVERAGE_PROCESS_START","/etc/coverage/.coveragerc")
coverage.process_startup()
cov = coverage.Coverage(
branch=True,
include=[<List>],
omit=["*/__init__.py"]) 
cov.start()

def exit_handler():
cov.stop()
cov.save()
cov.report()

cov.html_report(directory="/opt/coverage") 
atexit.register(exit_handler)
cov=coverage.coverage(
分支=真,
include=[],
省略=[“*/\uuuuu init\uuuuu.py”])
cov.start()
def exit_处理程序():
cov.stop()
cov.save()
冠状病毒报告(
cov.html_报告(目录=“/opt/coverage”)
atexit.register(退出处理器)
无论我们执行什么模块,每次都会得到相同的结果/覆盖率报告。你能帮我们做同样的事吗

还有一件事,我们使用以下命令获得unittest的正确覆盖率报告:

coverage run -m <unitTestScripts>
覆盖率运行-m

谢谢

使用方法1:您是否获得了任何测试操作的相同覆盖率报告?否,不正确的覆盖率报告。报告显示所有进程和任何测试操作的相同.py文件使用Approch1:您是否获得了任何测试操作的相同覆盖率报告?否,不正确的覆盖率报告。该报告为所有流程和任何测试操作显示相同的.py文件