虽然我尝试以编程方式运行testNg,但所有测试都已跳过,并且由于配置失败而出现错误。下面是我使用的代码。我认为这些类在一个jar文件中。该jar作为外部jar添加到项目中。
public class ExecuteScript {
private static void testRunner(Map<String, String> testngParams) {
TestNG testNG = new TestNG();
XmlSuite suite = getXmlSuite();
XmlTest test = getXmlTest(suite);
test.setParameters(testngParams);
List<XmlClass> classes = getXmlClasses();
test.setXmlClasses(classes);
List<XmlTest> tests = new ArrayList<XmlTest>();
tests.add(test);
suite.setTests(tests);
List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
testNG.setXmlSuites(suites);
testNG.run();
}
private static XmlSuite getXmlSuite() {
XmlSuite suite = new XmlSuite();
suite.setName("TestSuite");
return suite;
}
private static XmlTest getXmlTest(XmlSuite suite) {
XmlTest test = new XmlTest(suite);
test.setName("test_with_firefox");
return test;
}
private static List<XmlClass> getXmlClasses() {
List<XmlClass> classez = new ArrayList<XmlClass>();
classez.add(new XmlClass("com.articles.ArticleListingViewTest"));
classez.add(new XmlClass("com.mynotes.NewNoteCreationDeletionTest"));
return classez;
}
public static void main(String args[]) {
Map<String,String> params = new HashMap<String,String>();
params.put("platformname", "Android");
params.put("deviceName", "Nexus");
params.put("OSVersion", "4.2");
params.put("udid", "4d003e9be03d9");
testRunner(params);
}
}
配置失败表示配置方法引发异常。
[配置方法是用@BeforeSuite
,@AfterSuite
,@BeforeTest
,@AfterTest
,@BeforeGroups
,@AfterGroups
,@BeforeClass
,@AfterClass
,@BeforeMethod
和/或@AfterMethod
注释的方法。
[当配置失败发生时,TestNG跳过取决于配置方法的进一步测试(除非@Test
将alwaysRun
设置为true
)。
如果您有多种配置方法,那么有几种方法可以确定哪一种方法失败,包括使用断点进行调试,添加日志记录以及使用HTML报告。