如何使用 maven mvn test 命令行运行动态 testng.xml?
Posted
技术标签:
【中文标题】如何使用 maven mvn test 命令行运行动态 testng.xml?【英文标题】:How to run dynamic testng.xml using maven mvn test command line? 【发布时间】:2020-03-16 01:09:45 【问题描述】:我创建了一个创建动态 testng xml 的测试运行器,因此我可以运行带有参数的测试套装。 所有@Test 方法都在相关类中(例如 LoginTest.class)。 它可以从 IDE 完美运行,但使用 Maven (mvn test) 它只会打印 BUILD SUCCESS 但不运行任何测试...
POM.xml 中的 maven-surefire-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<environmentVariables>
<suite>LoginTest</suite>
</environmentVariables>
<includes>
<include>src/test/java/runner/TestRunner.java</include>
</includes>
</configuration>
</plugin>
我的 TestRunner 类:
public class TestRunner
public static void main(String[] args)
XmlSuite suite = new XmlSuite();
suite.setName("D-Web");
suite.setThreadCount(1);
suite.setVerbose(1);
//suite.setParallel("tests");
suite.addListener("com.app.listeners.ReportListeners");
XmlTest test = new XmlTest(suite);
test.setName("Tests");
test.setPreserveOrder(true);
XmlClass testClass = getTestClass();
List<XmlClass> classes = new ArrayList<>();
classes.add(testClass);
test.setXmlClasses(classes);
TestNG testng = new TestNG();
List<XmlSuite> suites = new ArrayList<>();
suites.add(suite);
testng.setXmlSuites(suites);
testng.run();
public static XmlClass getTestClass()
switch (System.getenv("suite"))
case "LoginTest":
default:
return new XmlClass(LoginTest.class);
case "PurchaseFunnelTest":
return new XmlClass(PurchaseFunnelTest.class);
case "QuestionnaireTests":
return new XmlClass(QuestionnaireTest.class);
我的 LoginTest 类:
public class LoginTest
@Test
public void test1()
System.out.println("Test 1 is running...");
【问题讨论】:
【参考方案1】:我刚刚尝试了您的项目,它正在从 mvn test 命令运行。 从哪里运行 maven 命令? 只需转到 pom.xml 所在的项目目录并运行您的命令,它应该可以正常工作。 此外,我已将您的 LoginTest 类与您的 TestRunner 类一起添加到 runner 包中,它可以在 IDE 和命令行中正常工作。
请再次测试并告诉我。
【讨论】:
您好,测试未运行。我从 pom.xmi 所在的项目目录运行它。它只是打印 BUILD SUCCESS: [INFO] BUILD SUCCESS [INFO] ------------------------------------ ------------------------------------------------ [INFO] 总时间:1.081 s [INFO] 完成时间: 2019-11-24T12:08:53+02:00 [信息] ---------------------------------- --------------------------------------以上是关于如何使用 maven mvn test 命令行运行动态 testng.xml?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Microsoft Powershell 中使用“mvn -D”参数运行 Maven,但可以在命令提示符下运行
如何使用 mvn -D 通过命令行在 Maven 中设置(多个)属性?
maven编译项目自动忽略test,如何不让他忽略啊?我用的命令是mvn test