私はmavenを使ってビルドされたJavaプロジェクトを持っています。フィーチャーファイルの場所に基づいてキュウリのJavaでダイナミックグルーを作成するには?
私は、さまざまな機能に基づいて複数のパッケージ、機能ファイルを持っています。プロジェクトのテスト構造は以下の通りです。私は一つだけRunCukesTest.javaが、この場合
@RunWith(Cucumber.class)
@CucumberOptions(format = { "html:target/cucumber-html-report",
"json:target/cucumber-json-report.json" },
features = "src/test/resources/",
glue = "??????",
tags = {"[email protected]"}
)
public class RunCukesTest {
}
を提出してい
src
->test
->java
->com
->usercreation
TestStepDef.java
->uservalidation
TestStepDef.java
->resources
->usercreation
usercreation.feature
->uservaliation
uservalidatin.feature
それはすべて私の機能ファイルを実行します。しかし、それは私の特有のステップ定義を見つけることができません。だから私は接着剤オプションを "com.usercreation"としなければならない。しかし、私がuservalidation機能ファイルを実行しているときに、適切なステップ定義を取得することはできません。私の使用例では、step defファイルが同じパッケージにあることを望んでいません。異なる機能を持つ多くのステップがあるからです。
私は動的に機能ファイルが実行されているパッケージ名に基づいて糊オプションを与える可能性のある方法はあります。あるいは、私はこのプロジェクトへの他のアプローチを欠いています。
** classpath:**は、Surefireのデフォルトではsrc/test/javaです。 – MikeJRamsey56
動的部分に関しては、実行するたびにglue引数を指定します。ランナー・ファイルを編集するのではなく、** - Ducucumber.options **を使用してオーバーライドすると、クラスパスに入れるステップ定義ファイルを選択できます。しかし、私はこれをお勧めしません。 [KISS](https://en.wikipedia.org/wiki/KISS_principle)を覚えておいてください。 – MikeJRamsey56
私はこのアプローチを以前に試みました。しかし、このアプローチの欠点の1つは、将来的に追加されるパッケージがたくさんある場合、グルーパスのパラメータは継続していくということです。 – googytech