簡體   English   中英

如何讓Maven Surefire運行所有類和測試?

[英]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個測試,但無論我使用的threadCountparallelfork設置的組合threadCount ,我似乎只能獲得一次運行的1類測試用例。 看起來這應該有效,任何人都可以提供解決方案嗎?

您想要並行運行套件,還是並行運行方法或測試?

我找到的並行運行套件的唯一可行解決方案是設置

<property>
   <name>suitethreadpoolsize</name>
   <value>8</value>
</property>

在pom.xml中。 其他所有組合都不起作用,因為我需要在同一個JVM上運行測試,而不是啟動分叉進程。

我在maven v3.5.0v2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM