8

ストック Maven 2 ツールとドキュメントを使用して対処する方法がわからないというニーズが常にあります。

一部の開発者は、非常に長時間実行される JUnit テスト (通常はストレス テスト) を行っており、どのような状況でも、ビルド プロセス / ナイトリー ビルドの通常の部分として実行する必要はありません。

もちろん、surefire プラグインの除外メカニズムを使用してビルドからそれらをパントすることもできますが、理想的には、開発者が Maven 2 を介して自由にそれらを実行できるようにしたいと考えています。

4

4 に答える 4

12

通常、別のテスト セットを実行するプロファイルを Maven 構成に追加します。

これを mvn -Pintegrationtest install で実行します

    <profile>
        <id>integrationtest</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <argLine>-client -Xmx896m -XX:MaxPermSize=192m</argLine>
                        <forkMode>once</forkMode>
                        <includes>
                            <include>**/**/*Test.java</include>
                            <include>**/**/*IntTest.java</include>
                        </includes>
                        <excludes>
                            <exclude>**/**/*SeleniumTest.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <activation>
            <property>
                <name>integrationtest</name>
            </property>
        </activation>
    </profile>
于 2008-10-30T21:00:13.290 に答える
4

krosenvoldの回答に追加して、予期しない動作が発生しないようにするために、特別なプロファイルで実行する統合またはストレステストを除外する、デフォルトでアクティブなデフォルトプロファイルも用意してください。

<profile>
    <id>normal</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/**/*IntTest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
</profile>

次のようなプロファイルを作成する必要があります。プロファイルの外側に Surefire-plugin をリストするだけで、プロファイルが次のように選択されている場合に上書きされます。

mvn -P integrationtest clean install
于 2011-09-06T19:54:47.457 に答える
1

Super Helpful Integration Test Thingyなどの統合テストプラグインを使用して、統合テスト(長時間実行、システム)をユニットテストから分離します(純粋な人は、すべての真のユニットテストを実行するのに最大30秒と言います)。単体テストと統合テスト用に2つのJavaパッケージを作成します。

次に、このプラグインをフェーズ(通常のMavenライフサイクル)にバインドせず、次のように、ターゲットとして明示的に呼び出された場合にのみ実行します。 mvn shitty:clean shitty:install shitty:test

<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>shitty-maven-plugin</artifactId>
  </plugin>
</plugins>

これにより、通常の開発者は影響を受けず、オンデマンドで統合テストを実行できるようになります。

于 2009-02-14T21:27:14.097 に答える
0

もう 1 つのオプションは、ストレス テストで maven で実行されていることを検出し、1 回か 2 回だけ実行することです。つまり、通常の機能テストに変わります。このようにして、コードがまだ正常であることを確認できますが、長時間実行することはできません。

于 2009-02-15T07:29:18.283 に答える