maven-surefire-pluginのforkMode分析



  MavenのSurefireプラグインは、長い間使用されています.早く実行しても問題があります.(例えば、before、afterの内容は実行されていません.)が、多くは順調に解決されました.今日はプロジェクトの中でSurefireの同時実行の問題に出会って、自分で実践テストとソースコードの角度から分析に着手します.
添付:プラグインごとのアドレス:http://maven.apache.org/plugins/index.html
1、実践:

  
  
  
  
  1. <plugin> 
  2.            <groupId>org.apache.maven.plugins</groupId>  
  3.            <artifactId>maven-surefire-plugin</artifactId>  
  4.            <configuration>  
  5.               <argLine>-Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m</argLine>  
  6.               <excludes>  
  7.                   <exclude>**/TestConstants.java</exclude>  
  8.               </excludes>  
  9.               <forkMode>always</forkMode>  
  10.            </configuration>  
  11. </plugin> 
<forkMode>always
Mavenがテストケースを実行する場合は、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
methods
<threadCount>4<threadCount>
実践コード:継続