【问题标题】:Before/After hook without tag runs for tagged tests as well之前/之后没有标记的钩子也可以用于标记测试
【发布时间】:2013-06-13 07:04:42
【问题描述】:

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

在 env.rb 中,我有一个 Before do .. end,它打开一个新的浏览器并设置测试以在测试环境中运行。我还有一个 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 之前读取测试的标签,我可以进行相应的设置。有没有办法做到这一点?

【问题讨论】:

    标签: tags cucumber hook


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 2017-02-14
      • 1970-01-01
      相关资源
      最近更新 更多