【发布时间】:2019-06-05 12:47:30
【问题描述】:
我创建了一个应该创建和执行 testng xml 文件的类。
public static void runTestNG_XML() {
XmlSuite suite = new XmlSuite();
suite.setName("All_TC");
XmlTest test = new XmlTest(suite);
test.setName("All_TC");
XmlRun xmlRun = new XmlRun();
xmlRun.onInclude(test.getName());
List<XmlPackage> packages = new ArrayList<XmlPackage>();
packages.add(new XmlPackage("testCases.*"));
test.setXmlPackages(packages);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
TestListener tla = new TestListener();
tng.addListener((ITestNGListener) tla);
tng.run();
}
这将生成下一个 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="All_TC">
<test name="All_TC">
<packages>
<package name="testCases.*"/>
</packages>
</test> <!-- All_TC -->
</suite> <!-- All_TC -->
在执行时,测试用例不会被执行。 运行的测试总数:0,失败:0,跳过:0
如果我将 XML 作为 TestNG 套件运行,它可以工作。
值得注意的是,当手动运行它时,在控制台中我有执行测试之前:
[TestNG] Running: C:\Xml_Path\testng_auto.xml
但是当使用上面的类运行时,我在执行开始之前:
[TestNG] Running: Command line suite
但这可能是因为使用了 CMD。
测试:
package testCases;
import org.testng.annotations.Test;
public class Scenario_1 {
@Test
public void TestCase_1() {
System.out.print("test1");
}
@Test
public void TestCase_2() {
System.out.print("test2");
}
}
测试版本:6.14.3
谢谢,
更新
我添加了详细级别,但出现以下错误。
[TestNG] 未找到测试。什么都没有运行
我尝试将 XmlPackage 更改为:
test.src.test.java.testCases.*
src.test.java.testCases.*
test.java.testCases.*
java.testCases.*
test.src.test.java.testCases
src.test.java.testCases
test.java.testCases
java.testCases
没有任何效果。这是项目结构:
【问题讨论】: