每个域都有多个功能

时间:2017-03-11 22:31:05

标签: php behat

我想告诉behat用其他域名网址运行每个功能文件。

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

domain1.feature
domain2.feature
domain3.feature

它们在同一个FeatureContext.php中执行非常类似的操作,但它们具有不同的参数和一组其他方案(每个域)。项目的性质是将3+个域保留在相同的空间名称中。

我以为我可以用

Feature: "Domain1 Tests"

然后在构造函数中读取它,但不知道在哪里查看或如何。每次更换一个域时,我不想编辑behat.yml。

有人解决了类似的挑战或有任何建议吗?

2 个答案:

答案 0 :(得分:2)

在每个功能中使用Background方案来设置域。

例如:

  Background:
    Given I am on my_domain domain

  Scenario:

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

答案 1 :(得分:0)

你可以做的一件事是:

domain1.feature
domain2.feature
domain3.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的文件中编写它们。

这意味着您不会复制类似的方案。