有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    如果使用Maven Surefire或Gradle TestNG运行程序,它是可配置的,但是默认情况下,我认为TestNG在src/test/java中查找类名。此外,我认为如果您从代码中运行TestNG,作为一个独立的运行,您可能能够调整它查找类的路径库