【问题标题】:Python coverage from processes started separately来自进程的 Python 覆盖分别开始
【发布时间】:2021-02-08 01:07:55
【问题描述】:

我有一个ROS 应用程序,它使用不同的 ros 节点启动几个不同的进程。除此之外,我还有一些脚本(启动这个节点)也运行一些 python 脚本。这是一个简化的例子:

服务器启动文件

  <node pkg="ui" name="hmuiserver" type="server.py" launch-prefix="$(eval 'python3-coverage run --source=/opt/project/')"/>

启动脚本

if python3-coverage run /opt/proj/lib/feature_set.py; then
    echo "Feature Enabled!"
fi

cmd="roslaunch ui hmui.launch"
$cmd

当我运行这个启动脚本时,我从python-coverage 收到一份覆盖率报告,其中涵盖了通过 server.py(ros 启动文件)运行的脚本。但我没有得到feature_set.py 脚本的报道。

如果我在两者上都使用run --parallel-mode,那么我只能从feature_set.py 获得覆盖,而不是从启动文件(是的,我正在使用python3-coverage combine)。

我猜这将与一些多进程的东西有关。 在这种情况下,我需要使用哪些设置来捕获两个文件的覆盖范围?

【问题讨论】:

    标签: python python-3.x code-coverage ros


    【解决方案1】:

    我不知道 ROS 是什么,但如果您有多个进程,则需要小心将它们的测量分开。 parallel 选项和 coverage combine 可能是您需要的。

    【讨论】:

    • 我会更新这个问题,因为我已经找到了这个问题,但它不适用于来自 ROS 启动文件的内容。
    猜你喜欢
    • 2012-10-22
    • 2019-10-05
    • 1970-01-01
    • 2018-01-30
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    相关资源
    最近更新 更多