コマンドラインから特定の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"
まず、次のような機能ファイルの説明全体を追加する必要があります。
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 を参照してください
たとえば、@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
特定のシナリオを実行する場合にのみ、機能ファイルへのフルパスを使用する必要があることがわかりました。たとえば、機能ファイルが/ var/www/html/tests/features/featuresにあり、/ var/www/html/testsにある場合は、次のコマンドを試してください。
bin/behat /var/www/html/tests/features/features/baseline.feature:3