maven-surefire-pluginのforkMode分析
3860 ワード
MavenのSurefireプラグインは、長い間使用されています.早く実行しても問題があります.(例えば、before、afterの内容は実行されていません.)が、多くは順調に解決されました.今日はプロジェクトの中でSurefireの同時実行の問題に出会って、自分で実践テストとソースコードの角度から分析に着手します.
添付:プラグインごとのアドレス:http://maven.apache.org/plugins/index.html
1、実践:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>
- <excludes>
- <exclude>**/TestConstants.java</exclude>
- </excludes>
- <forkMode>always</forkMode>
- </configuration>
- </plugin>
<forkMode>alwaysMavenがテストケースを実行する場合は、Mavenのsurefireプラグインを呼び出してforkのサブルーチンを実行します.forkmode属性で指定されているのは、各テストのためのプロセスですか?それとも、すべてのテストが同じプロセスで行われますか?
forkMode 設定可能な値は「never」「onece」「always」「pertest」があります.
pretest:各テストは新しいプロセスを作成し、各テストのために新しいJVMを作成するのは単独テストの最も徹底的な方法ですが、最も遅く、hudson上で持続的に復帰するのには適していません.
ワンス:一つのプロセスですべてのテストを行います.ワンスはデフォルト設定で、Hudsonで復帰し続ける場合はデフォルト設定がおすすめです.
always:1つのプロセスで並行してスクリプトを実行する場合、Junit 4.7以上のバージョンは使えます.surefireのバージョンは2.6以上でこの機能を提供します.そのうち、threadCount:実行時に割り当て可能なスレッドの数を指定します.パラメータparallelとのみ配合して使用します.デフォルト:5
<forkMode>always
<threadCount>4<threadCount>
実践コード:継続