java TestNG如何查找测试类?
TestNG在寻找其测试类时是如何工作的
我使用JavaFX从TestNG项目中创建了一个单独的项目来创建GUI,当GUI运行时,它允许您选择一个XML文件,然后testngxml的路径保存在一个变量中
当我运行以下代码时:
String xmlFileName = selectedFile.getAbsolutePath();
TestNG testng = new TestNG();
List<String> testFilesList = new ArrayList<String>();
testFilesList.add(xmlFileName); //test suite resides in the working directory's root folder
testng.setTestSuites(testFilesList); //you can addd multiple suites either here by adding multiple files or include all suites needed in the testng.xml file
testng.setUseDefaultListeners(false);
testng.addListener(htmlRep);
testng.run();
我得到一个错误,说它在XML中找不到我的测试类
[TestNG] [ERROR]
Cannot find class in classpath: com.emc.qe.u360.tests.LogoutTests
然后,我决定在我的TestNG项目中创建一个java类,并复制代码,它仍然会给出相同的错误消息
运行上述代码时,TestNG在哪里查找测试类
上面的代码与从eclipse本身手动运行XML有什么区别?代码似乎正在工作,从我所看到的运行XML的代码是否已损坏或不工作的情况来看,它无法向我提供该错误,因为它无法确定XML中指定了什么
任何帮助都将不胜感激,谢谢
编辑:仅作为背景信息,目前我正在使用Jenkins来运行测试,我试图用GUI创建一个替代解决方案,以在项目/框架之外运行测试,该解决方案可以普遍使用,用户只需选择他们的XML,然后执行测试
# 1 楼答案
如果使用Maven Surefire或Gradle TestNG运行程序,它是可配置的,但是默认情况下,我认为TestNG在
src/test/java
中查找类名。此外,我认为如果您从代码中运行TestNG,作为一个独立的运行,您可能能够调整它查找类的路径库