2017-06-29 17 views
0

cucumberオプションで特定の機能ファイルを特定のステップ定義ファイルに貼り付けようとしています。JUnit Testを使用してテストランナークラスを実行すると、実行のためのテストランナークラスで提供されるファイル。また、私のコンソールは、テストランナークラスに記載されているフィーチャーファイルのステップを開発するためのコードスニペットを出力します。Cucumberランナークラスで特定のステップ定義ファイルを指定するにはどうすればいいですか?

私はMavenを使用していないJavaProjectを作成しました。

(4つの異なる機能のファイルで構成)マイフィーチャーファイルパス: プロジェクト/機能

(4つの異なるステップ定義ファイルを持っている)私のStepDefinitionファイルのパス: プロジェクト/ SRC/StepDefinition

マイランナークラスファイルのパス: プロジェクト/ srcにここで/ cucumberTest

、私はランナークラスでstepDefinitionファイル4と機能ファイル4をマップしたい

マイランナークラスコード:

package cucumberTest; 

import org.junit.runner.RunWith; 
import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 

@RunWith(Cucumber.class) 
@CucumberOptions(
     features = "Feature/Test4.feature" 
     ,glue = {"stepDefinition/Test4_Step"} 
     ,monochrome = true 
     ) 
public class Test4_TestRunner { 

} 

私はキュウリに新しいですが、誰もがこれを達成する方法私を助けてくださいことはできますか? 、「JSON:SRC /テスト/リソース/ JSON/cucumber.json:あなたはCucumberOptions

フォーマット= { "かわいい"、 "ターゲット/サイト/キュウリ、かわいいHTML" にコードの下に追加する必要が

答えて

0

"}

+0

htmlとjsonのレポートを生成していませんか?ここでの私の意図は、フォルダ内のすべての機能とそれぞれのstepDefinitionsを実行するのではなく、特定の機能とそれぞれのstepDefinitionファイルを実行したいのです。 cucumberrOptionsで特定のファイルをマップする方法を教えてください。 – Sri

+0

私はむしろ、あなたのプロジェクトをmaveniseしたいと思います。serc/test/resources/featureの下にあなたのフィーチャーファイルを保存してください。上記のクラスを実行すると、フィーチャーファイルのシナリオに基づいてステップDefnクラスのインプリメンテーションが求められます。 – Ankur

0

パッケージ名ではなく、クラスにグルーパスを設定しています。下記のパッケージ名で試してください。

package cucumberTest; 
import org.junit.runner.RunWith; 
import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 
@RunWith(Cucumber.class) 
@CucumberOptions( 
    features = "Feature/Test4.feature" , 
    glue = 
{"stepDefinition"} , 
    monochrome = true) 
public class Test4_TestRunner { } 
+0

私はグルーパスにパッケージ名を与えたとき、テストランナーはパッケージ内のファーストステップ定義クラスファイルを検討していますが、パッケージ内の第4ステップ定義ファイルを実行するはずです。注:私の第1ステップと第4ステップの定義ファイルには、最初のいくつかのステップが共通しています。 – Sri

+0

次に、クラスごとに異なる名前のパッケージを複数作成する必要があります。しかし、これは良い方法ではありません。あなたの機能ファイルとクラスを追加できますか? – Murthi

+0

glue = {"stepDefinition.Test4_Step"} 注:各テストステップのステップ定義を一意にすることを忘れないでください。 –

0

あなたは@CucumberOptions featuresへのパス引数を指定した場合、その特定のパッケージ(パス)でALL .featureファイルはテストランナーで実行されます。 @CucumberOptions featureオプションで特定のファイルを参照することはできません。参照はパッケージ(パス)のみです。実行を特定の.featureファイルに制限するには、次のうちの1つを実行できます。

    は、あなたが別のパッケージに実行し、その後 @CucumberOptions featuresオプションを経由して、そのパッケージ(パス)を参照して喜んでいる特定の.featureファイルを移動し
  1. @CucumberOptions featuresを明示的に指定しない場合、キュウリはあなたのパッケージ構造に一致するサブディレクトリに機能を配置しようとします。この場合、たとえば、テストランナー(例:JUnit)がパッケージcucumberTestにある場合、フィーチャーファイルは、フォルダcucumberTestのクラスパス上になければなりません。
  2. .featureファイル内にタグ付きのfeatureまたはscenarioというマークが付いています。例えば、@execute。これにより、特定のタグ付きfeature(機能にタグが適用されている場合)またはscenario(シナリオにタグが適用されている場合)のみを実行することをキュウバーに知らせることができます。@Cucumber.Options(tags = {"@execute"})。反対の効果を達成するために、特定の機能/シナリオを実行から除外するには、(例:@Cucumber.Options(tags = {"[email protected]"}))を追加するだけです。必要な数のタグを参照できます。一般的に

    More information about cucumber tags

私はあなたが src/test/resourcessrc/test/javaで定義し、あなたの機能ファイルをステップに置く、すなわち、標準のMavenプロジェクト構造に従うことをお勧めします。あなたは、お気に入りのIDEまたはコマンドラインツールから新しいmavenプロジェクトを作成することができます。

More information how to get started with maven project.

関連する問題