gpt4 book ai didi

java - 如何使用 maven mvn test 命令行运行动态 testng.xml?

转载 作者:行者123 更新时间:2023-11-30 05:49:32 27 4
gpt4 key购买 nike

我创建了一个测试运行器,它创建了一个动态的 testng xml,这样我就可以运行带有参数的测试服。所有@Test 方法都在相关类中(例如 LoginTest.class)。它在 IDE 中运行完美,但使用 Maven(mvn 测试)它只打印 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...");
}
}

最佳答案

我刚刚尝试了您的项目,它是通过mvn test 命令运行的。从哪里运行 maven 命令?只需转到存在 pom.xml 的项目目录 并运行您的命令,它应该可以正常工作。此外,我已将您的 LoginTest 类与您的 TestRunner 类一起添加到 runner 包中,并且它在 IDE 和命令行中运行良好。

请再次测试并告诉我。

关于java - 如何使用 maven mvn test 命令行运行动态 testng.xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com