2016-08-19 6 views
2

私はbehat(注:私はbehat 3を使用しています)で自動テストを設定しています。私は次のディレクトリ構造を持っています:有効な機能ファイルのパスに仕様が見つかりません

これは全体のアプローチの初期テストです。私はそれを明白に単純に保っています。

私のbehat.ymlには次のものが含まれています(すべてがその中に含まれています。

default: 
    suites: 
    web: 
     paths: [%paths.base%/features/web] 
     contexts: [Web\LoginContext] 

私の唯一の機能ファイルには、次のものが含まれています

Feature: Login to MedNav 
    In order to use MedNav application 
    As a user 
    I need to be able to login 

    Scenario: Valid login credentials 
    Given I am on the login page 
    When I enter invalid credentials 
     And I hit log in button 
    Then I should see "Loading, please wait..." 
     And I should navigate to Emergency List page 

私はbehat --initを実行した後、それは私がステップのためのスタブを追加したファイルにWeb\LoginContextを、作成しました。しかし

、私はそれを実行しようとすると、何も起こりません:

$ bin/behat 
No scenarios 
No steps 
0m0.01s (13.16Mb) 

私が実行する機能を指定した場合、それは私が周りのものを移動しようとしましたNo specifications found at path(s) 'features/web/login.feature'

$ bin/behat features/web/login.feature 
No scenarios 
No steps 
0m0.01s (13.16Mb) 


    [Behat\Testwork\Tester\Exception\WrongPathsException]    
    No specifications found at path(s) `features/web/login.feature`. 


behat [-s|--suite SUITE] [-f|--format FORMAT] [-o|--out OUT] [--format-settings FORMAT-SETTINGS] [--init] [--lang LANG] [--name NAME] [--tags TAGS] [--role ROLE] [--story-syntax] [-d|--definitions DEFINITIONS] [--append-snippets] [--no-snippets] [--strict] [--order ORDER] [--rerun] [--stop-on-failure] [--dry-run] [--] [<paths>] 

ことを私に伝えますカスタムディレクトリ、スイートなどを削除します。何も機能しません。

機能ファイルを認識するためにどのように動作させることができますか?

+0

behat.ymlのコメントパスを再度試してみてください。動作していない場合は、LoginContextをboostrapに移動し、コンテキスト内のLoginContextだけを許可してください。 – lauda

+0

ベンダーのポジションを追加し、正しいパスから実行していることを確認してください。 – lauda

+0

@laudaコメントありがとうございます。私はすべてのパスを再チェックしました - すべてが正しい - それはまだ動作しません。 –

答えて

3

答えは非常に簡単であることが判明しました。

お知らせこのbehat.ymlで:

filters: 
    tags: web 

対応するコンテキストは、このタグを持っていなかったので、機能が実行されませんでした。今のところtagsは削除され、機能が実行されています。

0

もう一度パスをチェックしてください - あなたのケースでは、のようなものでなければなりません:

default: 
    suites: 
    web: 
     paths: [ %paths.base%/test/features/web ] 

そして、プロジェクトのルートディレクトリにbehat.ymlファイルを移動します。私は今呼んでいると思う。bin/behatbehat.ymlについて何も知らない。

bin/behatproject/パスから実行しているものとします。

これが関連する:http://docs.behat.org/en/v3.0/user_guide/configuration.html#custom-autoloading

+0

プロジェクトディレクトリからは実行しませんが、 'project/test'から実行します。これが私のベースディレクトリです。 'behat.yml'がそこに座っていて、それ以外のものはそれに関連していますが、確かに、あなたが言ったことを正確に行いました - 同じ結果:behatは機能を見つけません –

+0

この行を削除またはコメントしてください:' paths:[ %paths.base%/ features/web] 'を実行し、' bin/behat'を実行してみてください。 –

関連する問題