如何在 maven-surefire-plugin XML report for @RepeatedTest annotation test cases in junit 中获取正确的重复值和包名
How to get the correct repetition value and package name in maven-surefire-plugin XML report for @RepeatedTest annotation test cases in junit
我已经按照以下层次结构创建了一些 JUnit 测试用例。
包名例如:
test.qa.paramter.myTest
在这个包下,我有2个测试用例:
1:第一个测试用例(class 名称为 NormalTest,方法名称为 caseNormalTest)带有 @Test 注释
2:第二个测试用例(class 名称为 RepeatTest,方法名称为 caseRepeatTest)带有 @RepeatedTest,它将使用不同的输入值重复相同的测试 2 次。
我的问题是如何为@RepeatedTest 获得相同的 classname xml 输出,因为它不显示完整的包名称。也有可能在万无一失的报告中得到重复计数吗?
现在当我 运行 使用 Jenkins 的测试用例时,maven-surefire-plugin 为 @RepeatedTest
生成测试结果 xml
<testcase name="caseRepeatTest" classname="caseRepeatTest()" time="30.636"/>
<testcase name="caseParametrization" classname="caseParametrization()" time="13.013"/>
而对于@Test annoation,我得到了
<testcase name="caseNormalTest" classname="test.qa.paramter.myTest.NormalTest" time="22.796"/>
下面是我的 POM 设置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<argLine>-Xms512m -Xmx2048m</argLine>
<testFailureIgnore>true</testFailureIgnore>
<systemPropertyVariables>
<sun.net.http.allowRestrictedHeaders>true</sun.net.http.allowRestrictedHeaders>
<testInstance>v1</testInstance>
</systemPropertyVariables>
<includes>
<include></include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
</dependency>
</dependencies>
</plugin>
升级到 Maven Surefire 2.22.0 或更高版本并删除对过时 junit-platform-surefire-provider
.
的依赖
详情在这里:https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven
我已经按照以下层次结构创建了一些 JUnit 测试用例。
包名例如:
test.qa.paramter.myTest
在这个包下,我有2个测试用例:
1:第一个测试用例(class 名称为 NormalTest,方法名称为 caseNormalTest)带有 @Test 注释
2:第二个测试用例(class 名称为 RepeatTest,方法名称为 caseRepeatTest)带有 @RepeatedTest,它将使用不同的输入值重复相同的测试 2 次。
我的问题是如何为@RepeatedTest 获得相同的 classname xml 输出,因为它不显示完整的包名称。也有可能在万无一失的报告中得到重复计数吗?
现在当我 运行 使用 Jenkins 的测试用例时,maven-surefire-plugin 为 @RepeatedTest
生成测试结果 xml<testcase name="caseRepeatTest" classname="caseRepeatTest()" time="30.636"/>
<testcase name="caseParametrization" classname="caseParametrization()" time="13.013"/>
而对于@Test annoation,我得到了
<testcase name="caseNormalTest" classname="test.qa.paramter.myTest.NormalTest" time="22.796"/>
下面是我的 POM 设置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<argLine>-Xms512m -Xmx2048m</argLine>
<testFailureIgnore>true</testFailureIgnore>
<systemPropertyVariables>
<sun.net.http.allowRestrictedHeaders>true</sun.net.http.allowRestrictedHeaders>
<testInstance>v1</testInstance>
</systemPropertyVariables>
<includes>
<include></include>
</includes>
</configuration>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
</dependency>
</dependencies>
</plugin>
升级到 Maven Surefire 2.22.0 或更高版本并删除对过时 junit-platform-surefire-provider
.
详情在这里:https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven