2016-07-07 60 views
0

TestNG在寻找测试类时如何工作?TestNG如何查找测试类?

我使用JavaFX创建了一个独立的项目,使用JavaFX创建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。

任何帮助将不胜感激,谢谢。

编辑:只是为背景信息,目前我使用詹金斯运行测试,我想要做的与GUI是创建一个替代解决方案运行测试之外的项目/框架,可以普遍使用,用户可以选择他们的XML然后测试将被执行。

+0

我正在尝试做类似的事情。当我将多个TestNG测试类传递给我的Spring-Web-App测试运行器时,即使其中一个测试类具有错误的经典类名称,那么整个套件也会与TestNGException一起崩溃,我宁愿在每个类的基础上捕获问题,然后继续。我想我可能会在组装套件之前检查类名,并在早期发现异常。 – djangofan

+0

嘿@djangofan。我不认为我需要解决您的问题,因为我处于开发的最初阶段。如果你想开始一个私人聊天和讨论或项目,也许我已经做的事情可能会帮助你或使你受益? – colin

+0

它确定。我不需要帮助。我提到它是因为它听起来像你可能遇到与你的FX测试跑步者类似的问题。 – djangofan

回答

0

如果您使用Maven Surefire或Gradle TestNG转轮,它是可配置的,但默认情况下,我认为TestNG在您的类名称中查找src/test/java。此外,我认为如果您从代码运行TestNG,作为独立运行,您可能可以调整它寻找类的路径基础。