2016-08-23 23 views
1

私は、異なるプロジェクト間で同様のステップ定義を使用する複数のプロジェクトを持っています。したがって、単一のプロジェクトですべてのステップ定義を使用し、依存関係のjarとして追加します。Cucumberステップ依存性ジャーからの定義

あなたは下のスニペットで行方不明の手順を実装することができます:

@When("^Import a canvas from \"(.*?)\" to project \"(.*?)\"$") 
public void import_a_canvas_from_to_project(String arg1, String arg2) throws Throwable { 
// Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
    } 

が、私は同じプロジェクトでパッケージを追加するとき、それは正常に動作 私はMavenを使用して実行し、それは言う命じます。 (異なるプロジェクトからの日食でさえも)。 MavenやJenkinsからこのようなシナリオを実行する方法はありますか?

私はEclipse IDEを使用しています。私が使用したコマンドは次のとおりです: mvn -DprofileTest = cucumberID clean -P cucumberID test

cucumberIDは私のプロファイル名です。

プロファイルに続き、私はあなたはどのようにあなたがあなたのテストスイートを実行しているが、あなたは@CucumberOptionsがどこか、あなたがこのような他のプロジェクトのパッケージにだけ指すことができていると仮定されている指定していないのpom.xmlに

<profile> 
<id>cucumberID</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <version>2.11</version> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <testFailureIgnore>true</testFailureIgnore> 
        <includes> 
           <include>step_definitions/LoginTest.java</include> 
        </includes> 
        <parallel>classes</parallel> 
        <threadCount>3</threadCount> 
        <useFile>true</useFile> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

答えて

2

を追加しました:

@CucumberOptions(. . . glue = { 
     "com.company.test.package1", "com.company2.test.package2", . . .}) 
+0

問題は、糊オプションです。 – Komal

+0

@RunWith(Cucumber.class) @CucumberOptions( \t \t機能= "クラスパス:機能"、 \t \t \t \t糊= { "com.xurmo.bdd.stepdefinition.ui"}、 \t \tプラグイン= { "HTML:ターゲット/キュウリ-HTML-報告書"、 "かわいい")}、 \t \tタグ= {} \t \t パブリッククラスRunCukesTest私はあなたにそのパッケージを追加する必要がありますね{ \t } – Komal

+0

プロジェクト。 –

1

これを解決するために、パッケージ名の接頭辞classpath:prefixを使用します。例えば

:stepdefinitionは、JAR依存関係として追加された別のプロジェクトの一部であるとして

@CucumberOptions(glue = { "classpath:com.example.test.steps" })
関連する問題