之前/之后没有标签的钩子也运行标记测试

时间:2013-06-13 07:04:43

标签: tags cucumber hook

我有一个功能,可以在prod服务器上运行prod测试。它标记为@prod。我还有其他可以在测试环境中运行的非标记测试。

在env.rb中我有一个Before do .. end,它打开一个新浏览器并设置test以在test env中运行。我还有一个Before('@ prod')块,用于设置在prod帐户中运行的测试帮助程序。

当我运行prod测试时,使用黄瓜--tags @prod,它运行prod测试。我希望只有Before('@ prod')才能运行。但是我看到env.rb文件中的BEfore块都运行了,在第二个浏览器窗口中创建了2个新的浏览器实例和prod测试。当我的7个场景套件完成后,我有7个空白的打开浏览器窗口,我的测试工具设置来自未标记的Before。

给出任何有效的测试商家帐户#features / step_definitions / ConsumerPortal.rb:1       我们在平原之前       我们在@prod之前  以“pos”用户身份登录pos门户时

我看到After tag注销和关闭浏览器也是如此。首先运行标记的一个,然后运行普通的After标记。如果我可以在env.rb中读取测试中的标签之前,我可以相应地进行设置。这是一种方法吗?

1 个答案:

答案 0 :(得分:0)

在之前的标签中使用否定标签。

@Before("~@prod")
@After("~@prod")

这将阻止所有@prod标签运行Before和After标签。

或者通常,所有@Before和@After方法都针对任何标记运行。