0
我試圖以編程方式使用虛擬XML運行TestNG的,如下所述: http://testng.org/doc/documentation-main.html#running-testng-programmatically運行TestNG的程序,讓「找不到類路徑中的類」異常
這裏是我的代碼:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG tng = new TestNG();
tng.addListener(tla);
XmlSuite suite = new XmlSuite();
suite.setName("Retry Suite");
for (ITestResult testResult : failedTests){
XmlTest xmlTest = new XmlTest(suite);
//xmlTest.setSuite(suite);
xmlTest.setName(testResult.getTestName());
List<XmlClass> xmlClasses = new ArrayList<>();
xmlClasses.add(new XmlClass(testResult.getTestClass().getXmlClass().toString()));
xmlTest.setXmlClasses(xmlClasses);
xmlTest.getClasses().addAll(xmlClasses);
suite.addTest(xmlTest);
}
List<XmlSuite> suites = new ArrayList<>();
suites.add(suite);
tng.setXmlSuites(suites);
tng.run();
我得到下面的異常代碼時到達塊:
[ERROR] org.testng.TestNGException:
[ERROR] Cannot find class in classpath: [XmlClass class=tests.system.browserTests.BrowserTests]
[ERROR] at org.testng.xml.XmlClass.loadClass(XmlClass.java:81)
[ERROR] at org.testng.xml.XmlClass.init(XmlClass.java:73)
[ERROR] at org.testng.xml.XmlClass.init(XmlClass.java:63)
[ERROR] at org.testng.xml.XmlClass.<init>(XmlClass.java:39)
[ERROR] at tests.utils.autoReport.postHandler.TestNGLiseteners.retrySuiteVirtXml(TestNGLiseteners.java:226)
[ERROR] at tests.utils.autoReport.postHandler.TestNGLiseteners.onExecutionFinish(TestNGLiseteners.java:204)
我想不通爲什麼?有任何想法嗎?
看來你是不正確實例XmlClass這裏的「新XmlClass(testResult.getTestClass() .getXmlClass()。的toString())」。嘗試新的XmlClass(testResult.getTestClass()) – RubioRic
@RubioRic XmlClass構造函數接受String,而testResult.getTestClass()返回IClass。無論如何,即使使用.toString()也會導致相同的異常。 – Michael
在IClass上調用getName而不是toString。 – RubioRic