5

私のプロジェクトには、JUnitめったに実行したくないテストがいくつかあります。そうするために、それらを a に入れてから、これを@Category行いました:

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>
   <!-- Run all but the inject tests -->
   <configuration>
      <groups>!be.test.InjectTests</groups>
   </configuration>
</plugin>

コマンドラインで構成をオーバーライドして、次のように Inject テストを実行したいと思います。

mvn clean install -Dgroups=be.test.InjectTests

-Dgroups は Maven によって無視されます。

コマンドを入れないとうまくいきます。

4

1 に答える 1

6

残念ながら、pom に何かが設定されている場合、簡単にオーバーライドできないようです (skipTests明示的に設定すると、プロパティでオーバーライドするのも難しいでしょう)... しかし! (これはちょっとしたハックです) プロパティの設定を pom プロパティに延期し、コマンド ラインでオーバーライドすることができます。

<project>
...
<properties>
    <groups>!Slow</groups>
<properties>
....
<build>
    <plugins>
        ...
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <version>2.13</version>
           <configuration>
            <groups>${groups}</groups>
           </configuration>
        </plugin>
    </plugins>
</build>
...

これ (および、OSX、Maven 3.0.4、Java 1.6.0_37 で実行されるクイック ビルド アウト プロジェクト) を使用すると、次のようになります。

$ mvn clean test
...
Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
...
$ mvn clean test -Dgroups=Slow
...
Results :

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
于 2013-01-18T22:50:24.613 に答える