9

私は私のfeature filesインsrc/resources/com/featuresと私のstep definitionsインを持っていますsrc/main/java/com/step_definitions

私のテストはすべて正しく実行されますが、intelliJは、新しいステップを作成するように依頼しても、ステップ定義がどこにあるかを確認することを拒否します。これはどこで構成されていますか?

4

5 に答える 5

12

私はまったく同じ問題で髪を引き裂いていた(記録として、私のバックグラウンドはJava、Ruby、Cucumber、RubyMineですが、IntelliJとCucumber-JVMはまったく新しいです)。

Cucumber-JVMでは、 IntelliJドキュメントに記載されているように、ステップ定義がフィールドに格納されているパッケージを指定するrun configuration必要があります。IntelliJ(少なくとも私にとっては)はデフォルト値を提供していないようです。glue

さらに詳しく説明すると、非常に基本的なプロジェクトは次のようになります。

Example
└───src
    ├───main
    │   └───java
    └───test
        ├───java
        │   └───com
        │       └───bensnape
        │           └───example
        │                   MyStepdefs.java
        └───resources
                example.feature

ここでのglue値はになりますcom.bensnape.example

アップデート

今朝IntelliJで遊んだ後、Cucumber-JVMの規則に準拠している場合、それglueあなたに価値を提供するようです-つまり、機能はの下src/test/resources/<package>にある必要があり、同様に、手順はの下にある必要がありますsrc/test/java/<package>

プロジェクトツリーの例:

Example
└───src
    ├───main
    │   └───java
    └───test
        ├───java
        │   └───com
        │       └───bensnape
        │           └───example
        │                   MyStepdefs.java
        │
        └───resources
            └───com
                └───bensnape
                    └───example
                            example.feature
于 2012-12-28T21:45:09.917 に答える
4

フォルダーを (テスト) ソース ルートとしてマークすると (フォルダーを右クリック -> ディレクトリを (テスト) ソース ルートとしてマーク)、同様に機能します。

私のgrailsプロジェクトは次のように設定されています:

        test
        ├───cucumber
        │   └───steps
        │   └───support
        │   └───features
        └───unit

キュウリをステップ定義の 1 つとしてマークした後、ユニットはテスト ソース ルートとしてマークされました。

于 2013-01-25T10:47:41.480 に答える
3

デフォルトの規則では、 の下に がstep definitions定義されています。サブフォルダーの名前は重要ではありません。名前が何であれ、同じように機能します。step_definitions sub-folderfeatures directory

私の推測では、IDE は同じ規則に従うため、step_definitions フォルダーが features フォルダーの下に移動された場合、IntelliJ は機能を正しく実行するはずです。

は、機能を実行する前にファイルを要求するオプションをcucumber command取ります。-rこのオプションを使用すると、通常とは異なる場所で step_definitions を探すことができます。

-r src/main/java/com/step_definitionsコマンドラインから呼び出されたときにこれらの step_definitions を表示するには、キュウリのローカル構成が必要になると思います。

Runningcucumber --verboseは、コマンド ラインがステップ定義コードを見つけている場所を示します。

于 2012-12-22T04:42:09.710 に答える