如何运行特定的Behat场景

Jer*_*ham 28 php behat

我正在尝试从命令行运行特定的Behat场景,这就是我正在做的事情:

$ bin/behat features/features/baseline.feature:3
Run Code Online (Sandbox Code Playgroud)

然而,这并未取得这种情况.

如果我跑

bin/behat features/features/baseline.feature
Run Code Online (Sandbox Code Playgroud)

我可以运行整个功能文件.

这是文件的样子 - 我正在尝试运行的场景是在我的文本编辑器的第3行:

Feature:
  @api
  Scenario: Clear cache
    Given the cache has been cleared
    When I am on the homepage
    Then I should get a "200" HTTP response

  Scenario:
    Given I am not logged in
    When I am on the homepage
    Then I should see the text "We love our users"
Run Code Online (Sandbox Code Playgroud)

Igo*_*nko 36

首先,您应该添加功能文件的完整描述,例如:

Feature: Home page functionality
  In order to use application functionality
  As a website user
  I need to be able see the home page
Run Code Online (Sandbox Code Playgroud)

并且Scenario还应该有描述.

您可以使用标记运行behat场景:

bin/behat --tags @api
Run Code Online (Sandbox Code Playgroud)

基本上每个Scenario人都有自己的标签.Behat命令将尝试查找具有该@api标记的所有方案.

您还可以为整个Feature文件指定标记:

@whole-feature-file
Feature: Home page functionality
Run Code Online (Sandbox Code Playgroud)

使用部分名称运行场景:

bin/behat --name="element of feature"
Run Code Online (Sandbox Code Playgroud)

或者根据@greggles评论:

指定要素文件名和行号,例如

bin/behat features/file.feature:123 
Run Code Online (Sandbox Code Playgroud)

其中123是该行的行号 Scenario: Clear cache

有关更多详细信息,请参阅behat docs

  • 不确定这是否是新的选项,但也可以指定要素文件名和行号,例如`bin/behat features/file.feature:123`其中123是该行的行号,如`Scenario :清除缓存. (5认同)
  • 您甚至可以对一系列的行进行测试,如`bin / behat --help`中所述:* .feature:10- *`,*。feature:10-20 (2认同)

ley*_*nnx 5

发现您可以简单地使用任何自定义标签来标记场景,例如@foobar

Feature:
  @api @foobar
  Scenario: Clear cache
    Given the cache has been cleared
    When I am on the homepage
    Then I should get a "200" HTTP response

  Scenario:
    Given I am not logged in
    When I am on the homepage
    Then I should see the text "We love our users"
Run Code Online (Sandbox Code Playgroud)

然后只运行以下场景:

behat --tags foobar
Run Code Online (Sandbox Code Playgroud)