【问题标题】:How does TestNG look for Test Classes?TestNG 如何寻找测试类?
【发布时间】:2016-07-07 09:53:06
【问题描述】:

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 做的是创建一个替代解决方案来在项目/框架之外运行测试,这可以是普遍使用,用户只需选择他们的 XML,然后将执行测试。

【问题讨论】:

  • 我正在尝试做类似的事情。当我将多个 TestNG 测试类传递给我的 Spring-Web-App 测试运行器时,如果其中一个具有错误的规范类名称,那么整个套件会因 TestNGException 而崩溃,我宁愿在每个类的基础上发现问题,并且然后继续。我想我可能必须在组装套件之前检查类名,并更早地捕获异常。
  • 嘿@djangofan。我认为我不必解决您的问题,因为我正处于发展的早期阶段。如果您想开始私人聊天和讨论或项目,也许我所做的事情可能对您有所帮助或有益?
  • 没关系。我不需要帮助。我提到它是因为听起来您的 FX 测试运行器可能会遇到类似的问题。

标签: java xml javafx testng


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2011-12-09
    • 2011-04-10
    相关资源
    最近更新 更多