0
なって、プログラムでTestNGの実行: http://testng.org/doc/documentation-main.html#running-testng-programmatically、ここで説明したように、私は、仮想XMLを使用してプログラムの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(testResult.getTestClassを(XmlClassあなたが正しくインスタンス化されていないようです) .getXmlClass()。toString())」を選択します。新しいXmlClassを試してください(testResult.getTestClass()) – RubioRic
@RubioRic XmlClassコンストラクタはStringを受け取りますが、testResult.getTestClass()はIClassを返します。とにかく、.toString()を使用しても、同じ例外が発生します。 – Michael
toStringの代わりにIClassのgetNameを呼び出します。 – RubioRic