web-dev-qa-db-ja.com

特定のBehatシナリオを実行する方法

コマンドラインから特定のBehatシナリオを実行しようとしていますが、これが私がしていることです。

$ bin/behat features/features/baseline.feature:3

しかし、これはシナリオを取り上げていません。

走ったら

bin/behat features/features/baseline.feature

機能ファイル全体を実行することができます。

ファイルは次のようになります。実行しようとしているシナリオは、テキストエディターの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"
25
JeremyKirkham

まず、次のような機能ファイルの説明全体を追加する必要があります。

Feature: Home page functionality
  In order to use application functionality
  As a website user
  I need to be able see the home page

また、Scenarioにも説明が必要です。

タグを使用してbehatシナリオを実行できます。

bin/behat --tags @api

基本的に、すべてのScenarioは独自のタグを持つことができます。 Behatコマンドは、その@apiタグを持つすべてのシナリオを見つけようとします。

また、Featureファイル全体にタグを指定できます。

@whole-feature-file
Feature: Home page functionality

名前の一部を使用してシナリオを実行します。

bin/behat --name="element of feature"

または@gregglesコメントによると:

機能ファイル名と行番号を指定します。

bin/behat features/file.feature:123 

123はScenario: Clear cacheのような行の行番号です

詳細については、 behat docs を参照してください

35

たとえば、@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"

そして、このシナリオのみを実行します:

behat --tags foobar
1
leymannx

特定のシナリオを実行する場合にのみ、機能ファイルへのフルパスを使用する必要があることがわかりました。たとえば、機能ファイルが/ var/www/html/tests/features/featuresにあり、/ var/www/html/testsにある場合は、次のコマンドを試してください。

bin/behat /var/www/html/tests/features/features/baseline.feature:3
1
Evil E