4

私はこのようなインターフェースを持っています:

public interface IntegrationTest {
}

フェイルセーフ プラグインを次のように構成します。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.14</version>
    <configuration>
        <groups>acme.test.IntegrationTest</groups>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
            </goals>
        </execution>
    </executions>
</plugin>

次に、このような統合テストを作成すると

@Category(IntegrationTest.class)
public class ExampleClassIntegrationTest {

@Test
public void slow_and_painful_test() {

このテストは実行されません。

ただし、テストの包含と除外に従ってクラスに名前を付ける場合

**/IT*.java
**/*IT.java
**/*ITCase.java

そのようです:

@Category(IntegrationTest.class)
public class ExampleClassIT {

@Test
public void slow_and_painful_test() {

テストは正常に実行されます。groups-tag を使用するときに、テストに名前を付けて注釈を付ける必要があるのはなぜですか? 何か不足していますか?JUnitの使用に関するドキュメントには、クラス レベルで Category アノテーションを使用できると記載されています。

4

2 に答える 2

0

JUnit を依存関係 (> 4.8) として追加する必要がありますが、これは既に行われているか、特に以下をフェイルセーフ プラグイン構成に追加する必要があります。

<plugins>
[...]
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.14.1</version>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven.surefire</groupId>
        <artifactId>surefire-junit47</artifactId>
        <version>2.14.1</version>
      </dependency>
    </dependencies>
  </plugin>
[...]
</plugins>

でも状況は変わらないと思います。

于 2013-05-28T12:31:31.173 に答える