[英]How do I get Maven Surefire to run all classes and tests?
我有一個運行一些測試的Java JUnit Selenium測試框架。 有兩個類,每個類有兩個測試。
我有像這樣配置的maven surefire
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkCount>3</forkCount>
<reuseForks>true</reuseForks>
<parallel>methods</parallel>
<threadCount>100</threadCount>
<redirectTestOutputToFile>false</redirectTestOutputToFile>
</configuration>
<version>2.12.4</version>
</plugin>
我希望它同時運行4個測試,但無論我使用的threadCount
, parallel
和fork
設置的組合threadCount
,我似乎只能獲得一次運行的1類測試用例。 看起來這應該有效,任何人都可以提供解決方案嗎?
您想要並行運行套件,還是並行運行方法或測試?
我找到的並行運行套件的唯一可行解決方案是設置
<property>
<name>suitethreadpoolsize</name>
<value>8</value>
</property>
在pom.xml中。 其他所有組合都不起作用,因為我需要在同一個JVM上運行測試,而不是啟動分叉進程。
我在maven v3.5.0
對v2.20.1
使用以下配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<useUnlimitedThreads>true</useUnlimitedThreads>
<rerunFailingTestsCount>1</rerunFailingTestsCount>
<parallel>methods</parallel>
<forkedProcessExitTimeoutInSeconds>2</forkedProcessExitTimeoutInSeconds>
</configuration>
</plugin>
我相信這是有效的,因為我們的測試套件比以前快得多,並且windows報告正在運行的進程,特別是在運行surefire時大幅增加。
可能1年對你來說太遲了,但萬一它可以幫助別人。
像你一樣使用parallel =方法將一次啟動所有測試(方法),但一次啟動1個類(順序)。 因此,在您的示例中,2個類具有2個測試,您將執行ClassA的所有測試,然后執行ClassB的所有測試。
如果您要使用parallel = classes,那么所有類將同時啟動,但一次運行1個測試(方法)(順序)。 所以在你的例子中,2個類有2個測試,你將ClassA的Test1和ClassB的Test1並行啟動,然后ClassA的Test2和ClassB的Test2執行。
由於您希望所有4個測試並行執行,因此請使用parallel = all。 方法和類都將並行執行。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>all</parallel>
<threadCount>10</threadCount>
</configuration>
<version>2.22.0</version>
</plugin>
注意:或者,您可能希望刪除<configuration>塊並將其設置為mvn命令行中的參數。 例如:mvn clean test -Dparallel = all -DthreadCount = 10
問候,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.