gpt4 book ai didi

带有(子)进程覆盖率报告的 python unittest

转载 作者:太空狗 更新时间:2023-10-30 01:22:00 24 4
gpt4 key购买 nike

我正在使用 nose 运行我的“unittest”测试,并使用 nose-cov 来包含覆盖率报告。这些都工作正常,但我的部分测试需要将一些代码作为 multiprocessing.Process 运行。 nose-cov 文档声明它可以执行多处理,但我不确定如何让它工作。

我只是通过运行 nosetests 并使用以下 .coveragerc 来运行测试:

[run]
branch = True
parallel = True

[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover

# Don't complain about missing debug-only code:
def __repr__
#if self\.debug

# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError

# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:
def __main__\(\):

omit =
mainserver/tests/*

编辑:

我修复了“.coveragerc”文件中的 parallel 开关。我也试过在我的站点包目录中添加一个 sitecustomize.py :

import os
import coverage
os.environ['COVERAGE_PROCESS_START']='/sites/metrics_dev/.coveragerc'
coverage.process_startup()

不过,我很确定它仍然无法正常工作,因为“缺失”报告仍然显示我知道正在运行的行(它们输出到控制台)。在运行测试用例之前,我还尝试在我的测试用例文件和 shell 中添加环境变量。我还尝试在 multiprocessing.Process 调用的函数中显式调用相同的内容以启动新进程。

最佳答案

首先,您需要的配置设置是parallel,而不是parallel-mode。其次,您可能需要按照 Measuring Subprocesses 中的说明进行操作。 coverage.py 文档的一部分。

关于带有(子)进程覆盖率报告的 python unittest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27363230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com