我想用TestNG以编程方式运行测试套件。
我创建了测试结构:XmlSuite-
我在做三件事:
但在测试执行时发生的事情是,当它转到@test method时,对象没有我之前设置的东西。
代码
public class TestRunner {
public static void main(String[] args) {
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
// Add parameter to XmlTest
test.addParameter("testParam1", "clock");
TestClass testClass = new TestClass();
// Add parameter to XmlClass
Map<String, String> testClassParameters = new HashMap<>();
testClassParameters.put("classParam1", "valueOfClassParam1");
testClass.setParameters(testClassParameters);
// Set day variable
testClass.setDay("Friday");
testClass.setClass(TestClass.class);
test.setXmlClasses(Arrays.asList(testClass)) ;
TestNG tng = new TestNG();
tng.setXmlSuites(Arrays.asList(suite));
tng.run();
}
}
public class TestClass extends XmlClass {
private String day;
@Test
public void test1() {
System.out.println("Day: " + day);
System.out.println("LocalParameters: " + getLocalParameters());
System.out.println("AllParameters: " + getAllParameters());
}
public void setDay(String day) {
this.day = day;
}
}
结果:
Day: null
LocalParameters: {}
------------> Exception
我认为你期望做的是:
public class TestRunner {
public static void main(String[] args) {
// Add parameter to XmlClass
Map<String, String> testClassParameters = new HashMap<>();
testClassParameters.put("classParam1", "valueOfClassParam1");
testClassParameters.put("day", "Friday");
XmlClass testClass = new XmlClass();
testClass.setParameters(testClassParameters);
testClass.setClass(TestClass.class);
XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
// Add parameter to XmlTest
test.addParameter("testParam1", "clock");
test.setXmlClasses(Arrays.asList(testClass)) ;
TestNG tng = new TestNG();
tng.setXmlSuites(Arrays.asList(suite));
tng.run();
}
}
public class TestClass {
@Parameters({ "day", "testParam1", "classParam1" })
@Test
public void test1(String day, String testParam1, String classParam1) {
System.out.println("Day: " + day);
System.out.println("testParam1: " + testParam1);
System.out.println("classParam1: " + classParam1);
}
}
我使用java类从excel文件动态生成testNG xml。我使用allure-cli在测试执行结束时生成allure报告。 我正在使用maven-surefire插件进行以下配置。 当测试由maven目标和阶段触发时,我能够生成包含完整日志和屏幕截图的诱惑力报告,这些日志和屏幕截图由诱惑力注释(@step、@attachments、@Story…)附加。 但是,当java类(生成testNG
我创建了一个应该创建和执行testng xml文件的类。 这将生成下一个XML文件: 执行时不执行测试用例。总测试运行:0,失败:0,跳过:0 如果我将XML作为TestNG套件运行,它就会正常工作。 值得注意的是,当手动运行它时,在控制台中我在执行测试之前: 但在执行开始前使用上面的类运行时: 但这可能是因为使用了CMD。 测试: testng版本:6.14.3 谢谢 更新 我添加了详细级别,我
我试图在Eclipse中使用Selenium运行TestNG。 当类文件作为TestNG测试运行时,我得到的测试Run=0。 问题会是什么? 我有testNg插件 testng。xml文件: 类: WebDriverTest类: BrowserInstance类: 注: 当我将testing.xml文件作为TestNG Suite运行时,结果是: 当我运行. java文件作为TestNG测试时,结
这是驱动程序类,它将为每个测试方法创建驱动程序实例。
我试图创建一起使用JBehave和TestNG的概念验证。我想做的是在多个线程中同时运行一个故事,以测试我的代码的线程安全性。 我有一个简单的类,它只做一件事,在给定的整数值上计算模7。我已经为这个类创建了一个简单的BDD测试。我已经按照JBehave“入门”文档中的描述设置了BDD测试。唯一的区别是,在我的JUnitStory文件中,我没有使用JUnit的@Test注释,而是使用了TestNG的
我有一个应用程序(使用注释的Spring 4 MVC Hibernate 4 MySQL Maven集成示例),使用基于注释的配置将Spring与Hibernate集成,但运行测试时出错! 上课时间到了 下面是即将到来的考验: 这是pom。xml文件: