You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "QIAO YU (Jira)" <ji...@apache.org> on 2020/05/22 14:42:00 UTC
[jira] [Updated] (SUREFIRE-1795) surefire-reports is not working in
parallel
[ https://issues.apache.org/jira/browse/SUREFIRE-1795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
QIAO YU updated SUREFIRE-1795:
------------------------------
Description:
Create a maven project, add 4 testng classes to print out logs, for example:
{code:java}
package com.verizon.rngverify;
import org.testng.annotations.Test;
public class testClass1 {
@Test public void test1() throws Exception {
System.out.println("class1method1");
Thread.sleep(100);
System.out.println("class1method1 end");
}
}
{code}
Create a testng xml file to control above 4 test cases in parallel with 4 threads:
{code:java}
<suite name="tsname" parallel="tests" thread-count="4" verbose="1">
<test name="testname1_in_xml" >
<classes>
<class name="com.verizon.rngverify.testClass1"/>
</classes>
</test>
<test name="testname2_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass2"/>
</classes>
</test>
<test name="testname3_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass3" />
</classes>
</test>
<test name="testname4_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass4" />
</classes>
</test>
</suite>
{code}
Use surefire plugin in pom:
{code:java}
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration> <source>1.8</source> <target>1.8</target> </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<suiteXmlFiles> <file>src/test/resources/ts1234.xml</file> </suiteXmlFiles>
</configuration>
</plugin>
</plugins>
{code}
Run above project:
mvn clean install
...
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
class1method1
class2method1
class3method1
class4method1
class2method1 end
class3method1 end
class4method1 end
class1method1 end
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.617 s - in TestSuite
...
But in ${project}/target/surefire-reports/testng-results.xml, only 3 cases are record. Also under ${project}/target/surefire-reports/junitreports folder, only 3 files are generated.
In general, if the thread-count > 1, this happens randomly.
was:
Create a maven project, add 4 testng classes to print out logs, for example:
{code:java}
package com.verizon.rngverify;
import org.testng.annotations.Test;
public class testClass1 {
@Test public void test1() throws Exception {
System.out.println("class1method1");
Thread.sleep(100);
System.out.println("class1method1 end");
}
}
{code}
Create a testng xml file to control above 4 test cases in parallel with 4 threads:
{code:java}
<suite name="tsname" parallel="tests" thread-count="4" verbose="1">
<test name="testname1_in_xml" >
<classes>
<class name="com.verizon.rngverify.testClass1"/>
</classes>
</test>
<test name="testname2_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass2"/>
</classes>
</test>
<test name="testname3_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass3" />
</classes>
</test>
<test name="testname4_in_xml">
<classes>
<class name="com.verizon.rngverify.testClass4" />
</classes>
</test>
</suite>
{code}
Use surefire plugin in pom:
{code:java}
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration> <source>1.8</source> <target>1.8</target> </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<suiteXmlFiles> <file>src/test/resources/ts1234.xml</file> </suiteXmlFiles>
</configuration>
</plugin>
</plugins>
{code}
Run above project:
mvn clean install
From console log, it show 4 test cases ran in parallel:
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
class1method1
class2method1
class3method1
class4method1
class2method1 end
class3method1 end
class4method1 end
class1method1 end
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.617 s - in TestSuite
But under ${project}/target/surefire-reports, open testng-results.xml, only 3 cases are record. Also under ${project}/target/surefire-reports/junitreports folder, only 3 files are generated.
In general, if the thread-count > 1, this happens randomly. If set thread-count to 1, we will all testing record.
> surefire-reports is not working in parallel
> -------------------------------------------
>
> Key: SUREFIRE-1795
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1795
> Project: Maven Surefire
> Issue Type: Bug
> Components: Maven Surefire Plugin
> Affects Versions: 3.0.0-M4
> Environment: Centos 7 +JDK 1.8.0 + Maven 3.0.5 + surefire plugin 2.19.1 + testng 6.8;
> Centos 7 + JDK 1.8.0 + Maven 3.5.2 + surefire plugin 2.19.1 + testng 6.8;
> Windows 10 + JDK 1.8.0 + Maven 3.5.0 + surefirel plugin 3.0.0-M4 + testng 6.8;
>
> Reporter: QIAO YU
> Priority: Major
>
> Create a maven project, add 4 testng classes to print out logs, for example:
> {code:java}
> package com.verizon.rngverify;
> import org.testng.annotations.Test;
> public class testClass1 {
> @Test public void test1() throws Exception {
> System.out.println("class1method1");
> Thread.sleep(100);
> System.out.println("class1method1 end");
> }
> }
> {code}
>
> Create a testng xml file to control above 4 test cases in parallel with 4 threads:
> {code:java}
> <suite name="tsname" parallel="tests" thread-count="4" verbose="1">
> <test name="testname1_in_xml" >
> <classes>
> <class name="com.verizon.rngverify.testClass1"/>
> </classes>
> </test>
>
> <test name="testname2_in_xml">
> <classes>
> <class name="com.verizon.rngverify.testClass2"/>
> </classes>
> </test>
> <test name="testname3_in_xml">
> <classes>
> <class name="com.verizon.rngverify.testClass3" />
> </classes>
> </test>
> <test name="testname4_in_xml">
> <classes>
> <class name="com.verizon.rngverify.testClass4" />
> </classes>
> </test>
> </suite>
> {code}
>
> Use surefire plugin in pom:
> {code:java}
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>3.7.0</version>
> <configuration> <source>1.8</source> <target>1.8</target> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <version>3.0.0-M4</version>
> <configuration>
> <suiteXmlFiles> <file>src/test/resources/ts1234.xml</file> </suiteXmlFiles>
> </configuration>
> </plugin>
> </plugins>
> {code}
> Run above project:
> mvn clean install
>
> ...
> [INFO] -------------------------------------------------------
> [INFO] T E S T S
> [INFO] -------------------------------------------------------
> [INFO] Running TestSuite
> class1method1
> class2method1
> class3method1
> class4method1
> class2method1 end
> class3method1 end
> class4method1 end
> class1method1 end
> [INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.617 s - in TestSuite
> ...
>
> But in ${project}/target/surefire-reports/testng-results.xml, only 3 cases are record. Also under ${project}/target/surefire-reports/junitreports folder, only 3 files are generated.
>
> In general, if the thread-count > 1, this happens randomly.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)