每个域具有多个功能

Behat multiple features per domain

我想告诉 behat 运行 每个功能文件与其他域 url。

同一文件夹中有 3 个不同域(更改)的 3 个功能。

domain1.feature
domain2.feature
domain3.feature

他们在同一个 FeatureContext.php 中做非常相似的事情,但他们有不同的参数和一组其他场景(每个域)。项目的性质是在同一个空间名称中保留 3 个以上的域。

我以为我可以用

Feature: "Domain1 Tests"

然后在构造函数中阅读此内容,但不确定在哪里查看或如何查看。我不想每次替换一个域时都编辑 behat.yml。

有人解决过类似的挑战或有什么建议吗?

在每个功能中使用 Background 场景来设置域。

例如:

  Background:
    Given I am on my_domain domain

  Scenario:

或者如果你有相同的场景,你应该写一些方法来处理基于域或其他参数的数据,并删除重复的场景。
尽量不要复制场景只是为了能够在不同的域上执行它们,这将是一种不好的做法。

你可以做的一件事是:

domain1.feature
domain2.feature
domain3.feature
common.feature

在你的common.feature中:

Scenario Outline: A common scenario for 3 domains
 Given I am on "<domain>"
  And I do some setup thing
 When I do some action
 Then I should see some <outcome>

Examples:
  | domain  | outcome  |
  | domain1 | outcome1 |
  | domain2 | outcome2 |
  | domain3 | outcome3 |

然后,对于特定领域的测试,您可以将它们写入标记为 domain1.feature、domain2.feature 和 domain3.feature 的文件中。

这意味着您不会重复类似的场景。