0

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

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

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

给定任何有效的测试商家帐户 # features/step_definitions/ConsumerPortal.rb:1 我们很简单 之前 我们在 @prod 之前 以“pos”用户身份登录 pos 门户网站之前

我看到 After 标记注销和关闭浏览器也发生了同样的情况。标记的一个首先运行,然后是普通的 After 标记。如果我可以在我的 env.rb 之前读取测试的标签,我可以进行相应的设置。有办法做到这一点吗?

4

1 回答 1

0

将否定标签与之前的标签一起使用。

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

这将阻止对所有 @prod 标记运行之前和之后标记。

或者一般来说,所有@Before 和@After 方法都适用于任何标签。

于 2013-06-13T21:42:52.153 回答