[英]How to run Maven surefire where each test class has its own parallel JVM?
無論我在Maven + Surefire中使用什么設置,我都看不到在我的流程管理器中生成的多個JVM。 我有一台帶有8個物理內核的Windows 7 PC。 我正在運行最新的Maven / Surefire / JUnit和JDK8(32位)。
我嘗試將每個測試分解為每個測試類一個測試。 (我讀到JVM只是為測試類生成的,而不是測試方法。)盡管如此,我從未在流程管理器中看到多個JVM。
理想情況下,我希望每個測試類並行運行一個單獨的JVM-8(每個核心一個/不重用JVM)。
Maven Surefire設置需要什么?
以下內容對我不起作用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>${default.test.suite}</include>
</includes>
<reuseForks>false</reuseForks>
<forkCount>1.0C</forkCount>
<parallel>classes</parallel>
<threadCount>1</threadCount>
<!--
<useUnlimitedThreads>true</useUnlimitedThreads>
<parallelOptimized>false</parallelOptimized>
-->
</configuration>
</plugin>
(我嘗試了reuseForks
, forkCount
, parallel
, threadCount
, useUnlimitedThreads
和parallelOptimized
各種組合。)
如果您正在使用JUnit,首先“並行”僅適用於TestNG,其他一些屬性也是如此,因此它們對您沒有幫助/興趣:
這是在JUnit設置中對我們有用的東西(不適用於剛剛發布的TestNG: 與surefire並行運行測試並使用TestNG Jenkins插件正確顯示它們 ):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<reuseForks>false</reuseForks>
<forkCount>2.5C</forkCount>
</configuration>
</plugin>
所以我認為你需要增加你的forkCount(forkCount = 1.0你不會得到並行的東西)。
作為參考,這里有關於並行運行測試的小打印(包括forkCount解釋和示例):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.