1

通常のテストフェーズでいくつかの統合テストを実行するために、Mavenpomファイルにさまざまな単純なプロファイルがあります。戦争を構築したり展開したりしたくないので、通常の統合テストフェーズではこれらのテストを実行したくないことに注意してください。テストは通常​​のJUnitテストと同様に正常に実行されます。

これが私のプロフィールです:

<profile>
  <id>AdminSeltests</id>
  <build>
    <plugins>
   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12</version>

      <configuration>
          <includes>
            <include>**/*/TestSellerSignupWizard.java</include>
          </includes>
      </configuration>

      <executions>
      <execution>
        <id>execution2</id>
        <phase>test</phase>
       </execution>
      </executions>
    </plugin> 
    </plugins>
  </build>
</profile>

私のテストは次のように呼ばれます。

com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard

ただし、上記のプロファイルを次のように実行すると、次のようになります。

mvn test -P AdminSeltests

テストは実行されません。私は値として以下を試しました:

<include>**/TestSellerSignupWizard.*</include>
<include>**/TestSeller*.*</include>
<include>**/TestSeller*.java</include>
<include>**/*/TestSeller*.java</include>
<include>
  com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard.java
</include>

これらはどれも機能しません。

誰かアイデアはありますか?

ありがとうアダム

解決済み:私はを使用しています。これには、通常のテスト内容を含むmaven-surefire-plugin自動includesセクションがあります。そこでexclude、通常の単体テストを除外するように構成し、次にinclude実行したい統合テストのパターンを含めるセクションを作成しました。

なぜこのように機能するのかわかりませんが、次のように機能します。

<configuration>
    <excludes>
      <exclude>**/Test*.java</exclude>
      <exclude>**/*Test.java</exclude>
      <exclude>**/*TestCase.java</exclude>
    </excludes>
    <includes>
      <include>**/ITTestSellerSignupWizard.java</include>
    </includes>
</configuration>

皆様のご協力に感謝いたします。

4

1 に答える 1

2

貼り付けた実際のコードは明らかに機能しません。なぜならTestSellerSignupWizard、でテストを行っているときにクラスについて言及しているためですTestCustomerSignupWizard**/Test*.javaただし、Surefire の組み込み用のデフォルト マスクの 1 つが、この場合にうまく適合するため、実際には問題にならないタイプミスだと思います。

したがって、すべてが機能するソリューションのように見えるので、テストクラスパスにこのクラスがないことが問題だと思います。これは何らかの形で統合テストに関連していると述べたので、おそらくこのクラスはに配置されており、それはSurefireのMavenのデフォルトではsrc/it/javaありません。src/test/java私が正しければ、このクラスを移動するsrc/test/javaか、(試したように) 別の Surefire 実行を使用する必要がありますが、testSourceDirectoryパラメーターはオーバーライドされます ( link )。

于 2012-04-24T13:37:43.967 に答える