【发布时间】:2019-12-17 09:17:54
【问题描述】:
我有 maven + testng 项目如下:
pom.xml
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/config/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
testng.xml
<test name="SendAuroraRequests_TEST">
<parameter name="requestsToEnv" value="test" />
<classes>
<class name="com.test.TrackerTest" />
</classes>
</test>
TrackerTest.java
package com.test;
public class TrackerTest {
private ITestContext context;
@Parameters("requestsToEnv")
@BeforeTest
public void setInvocationCount(ITestContext context, String requestsToEnv){
this.context = context;
this.setInvocationCount(context, this, requestsToEnv);
}
}
当我尝试运行“mvn test”命令时效果很好,但是当我尝试使用 maven 命令运行特定测试类时,如“mvn test -Dtest=TrackerTest ",它会抛出如下异常:
[ERROR] setInvocationCount(com.test.TrackerTest) Time elapsed: 0.656 s <<< FAILURE!
org.testng.TestNGException:
Parameter 'requestsToEnv' is required by BeforeTest on method setInvocationCount but has not been marked @Optional or defined
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR] TrackerTest.setInvocationCount ? TestNG
Parameter 'requestsToEnv' is re...
[INFO]
[ERROR] Tests run: 4, Failures: 1, Errors: 0, Skipped: 3
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.838 s
[INFO] Finished at: 2019-08-09T22:56:34+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project hfatest-tracker: There are test failures.
看起来使用 maven 命令运行特定测试类并没有尝试从 testng.xml 获取参数,我也尝试使用类似“mvn test -Dtest=TrackerTest -DsuiteXmlFile=src/test/resources/config/ testng.xml" 但没有用,如何让它按预期工作?
P.S:我在这里找到了相关主题: https://groups.google.com/forum/#!msg/testng-users/ccp_ewuNWlk/kmMXi0ycAwAJ
【问题讨论】: