gpt4 book ai didi

bdd - 如何跳过 Beeve python BDD 框架中的测试?

转载 作者:行者123 更新时间:2023-12-02 14:06:58 25 4
gpt4 key购买 nike

我正在处理几个月前部分完成的代码分支,以及相互交织的依赖关系。因此,前进的最简单方法是将特定分支上的失败测试标记为待处理(rspec 方式)或跳过,并在所有内容合并后处理它们。

在其最终报告中,behave 报告通过的测试数、# 失败的测试数、# 跳过的测试数和 # 未测试的测试数(当我按 Ctrl-C 中止时,这些测试数为非零)运行)。因此,表现是跳过测试的一个概念。我如何访问那个?

最佳答案

如果您想在命令行上控制事物,那么您可以执行 Tymoteusz Paul 操作在另一个答案中建议。简而言之,您可以使用任何您想要标记功能和场景的标签,然后使用 --tags 根据您使用的标签选择或取消选择功能和场景。该文档给出了使用 @slow 标记慢场景的示例,然后使用 behave --tags=slow 只运行慢测试,或使用 behave -- Tags=-slow 排除慢速测试。阅读documentation建议了解 --tags 允许的语法。

通过上述方法,您可以使用@skip并执行behave --tags=-skip。这将排除所有用 @skip 标记的内容,但每次调用时都必须包含额外的参数,这很烦人。 @skip 不能自己告诉 Behave 跳过,而不需要在命令行上提供任何参数吗?

如果您想要一个 @skip 标记来跳过用它标记的功能和场景,而不需要额外的参数,那么,从 Behave 1.2.5 开始,您必须 将功能构建到您的 environment.py 文件中。what this answer 相反。表明,它不是内置的。我们添加这样的功能:

def before_feature(context, feature):
if "skip" in feature.tags:
feature.skip("Marked with @skip")
return

# Whatever other things you might want to do in this hook go here.

def before_scenario(context, scenario):
if "skip" in scenario.effective_tags:
scenario.skip("Marked with @skip")
return

# Whatever other things you might want to do in this hook go here.

.skip 方法的参数是跳过的原因。

我总是使用 . effective_tags 在场景中执行标签测试。 . effective_tags 字段继承在功能上设置的标签。在本例中,这没有什么区别,因为如果该功能具有@skip,那么其中的场景将被强制跳过。但是,我更喜欢坚持一般原则,即场景中的标记检查应使用 . effective_tags 以便标记继承起作用。

<小时/>

等等! tutorial不是吗?说 @skip 是内置的?

不,本教程介绍的内容有点误导,因为它提供了一个列表,其中在 @wip 旁边显示了 @skip@wip 是内置的,所以 @skip 也是内置的,对吗?不,它们位于“预定义或常用标签”列表中。 @skip 只是“经常使用”。它经常被使用,因为以信息丰富的方式使用“跳过”一词来将某些内容标记为已跳过。它并不需要将标签内置到 Behave 中。

关于bdd - 如何跳过 Beeve python BDD 框架中的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482419/

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