子表达式的python条件覆盖率

子表达式的python条件覆盖率,python,code-coverage,python-coverage,Python,Code Coverage,Python Coverage,我试图找到一个python代码覆盖率工具,它可以测量语句中是否包含子表达式: 例如,我想看看下面的示例中是否包含条件1/条件2/条件3 if condition1 or condition2 or condition3: x = true_value 对此唯一合理的答案是:目前没有现成的实现 分支覆盖范围最接近的东西是工具 NB:无论如何,实现这一点都不是小事 正如@Ira Baxter所指出的,它是可以实现的。确实为python应用程序提供了条件覆盖,但它还没有实现 也就是说,如果您的代码在

我试图找到一个python代码覆盖率工具,它可以测量语句中是否包含子表达式:

例如,我想看看下面的示例中是否包含条件1/条件2/条件3

if condition1 or condition2 or condition3: x = true_value

对此唯一合理的答案是:目前没有现成的实现

分支覆盖范围最接近的东西是工具

NB:无论如何,实现这一点都不是小事

正如@Ira Baxter所指出的,它是可以实现的。

确实为python应用程序提供了条件覆盖,但它还没有实现

也就是说,如果您的代码在Python2.7或Python3的早期版本上工作,那么它可能已经足够好了


虽然我无法将它与
tox
集成,但它确实可以与Python 2.7上的
pytest
hyporation
一起工作,他想知道一个条件是否被评估为true,是否被评估为false,和/或改变其状态是否会影响整个决策(可以说,它被视为控制决策结果)。(有关更多详细信息,请参阅MC/DC coverage)。我认为实现这一点可能并不简单。有by--但是它只覆盖分支覆盖,而不是AFAIK表达式的一部分。正如这个问题/答案所指出的,coverage.py库/工具实现了“分支覆盖”--但我不确定它是否会像您所问的那样覆盖条件。谢谢,James.AFAIK,coverage.py不支持我的用例,这就是我问这个问题的原因。分支覆盖率MC/DC覆盖率。对,这样做并不简单。必须插入代码来收集条件的状态执行;这是理想的廉价操作,这样性能不会受到严重影响(收集了大量数据,通常在内部循环中!)。还需要对这些条件状态进行执行后分析,以确定它们是否是因果关系。最后,您需要某种方式来显示答案,因为答案是以部分行的形式显示的。(我使用强大的工具为罗克韦尔继电器梯形图逻辑引擎构建了此功能)。