TestNG在寻找测试类时如何工作?
我使用JavaFX从我的TestNG项目创建了一个单独的项目来创建GUI,当GUI运行时,它允许您选择XML文件,然后将testNG XML的路径保存在变量中。
当我运行以下代码时:
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] [错误]
在类路径中找不到类:com.emc.qe.u360.tests.LogoutTests
然后我决定在我的TestNG项目中创建一个java类,并复制代码,它仍然会给出相同的错误消息。
运行上述代码时,TestNG在哪里寻找测试类?
上面的代码从eclipse本身手动运行XML有什么区别?代码似乎正在起作用,正如我所看到的,如果运行XML的代码被破坏或无法运行,它将无法给我这个错误,因为它无法确定XML中指定的内容。
任何帮助将不胜感激,谢谢。
编辑:仅仅是为了获取背景信息,目前我正在使用Jenkins来运行测试,我尝试使用GUI来创建一个替代解决方案来运行Project / Framework之外的测试,可以普遍使用,用户可以只选择他们的XML,然后执行测试。
答案 0 :(得分:0)
如果您使用Maven Surefire或Gradle TestNG跑步者,它是可配置的,但默认情况下,我认为TestNG会在src/test/java
中查找您的班级名称。另外,我认为如果您从代码运行TestNG作为独立运行,您可以调整其查找类的路径库。