Maven運行測試用例時,是通過調用maven的surefire插件並fork一個子進程來執行用例的。forkmode屬性中指明是要為每個測試創建一個進程,還是所有測試在同一個進程中完成。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkMode>once</forkMode> <argLine>-Dfile.encoding=UTF-8</argLine> </configuration> </plugin>
forkMode 可設置值有 “never”, “once”, “always” 和 “pertest”。
pretest: 每一個測試創建一個新進程,為每個測試創建新的JVM是單獨測試的最徹底方式,但也是最慢的,不適合hudson上持續回歸。
once:在一個進程中進行所有測試。once為默認設置,在Hudson上持續回歸時建議使用默認設置。
always:在一個進程中並行的運行腳本,Junit4.7以上版本才可以使用,surefire的版本要在2.6以上提供這個功能,
其中 threadCount:執行時,指定可分配的線程數量。只和參數parallel配合使用有效。默認:5。
附上maven常見的插件:http://maven.apache.org/plugins/index.html