java - 如何从另一个 java 类运行测试类

标签 java gradle testng hudson

我有 3 个 java 测试类。
1.ListenerTest1.java
2.ListenerTest2.java
3.ListenerMain.java

以上两个 testfixture 类即 ListenerTest1.java 和 ListenerTest2.java 都有测试方法。
此外,将 build.gradle 文件设置为:-

task automationTests(type: Test) {

    systemProperty 'serviceType', System.properties['serviceType']


    useTestNG {
        useDefaultListeners = true
        suiteXmlBuilder().suite(name: 'Testing case') {
            test(name: 'ServiceUITests', annotations: 'JDK', verbose: '1') {
                classes([:]) {

                    'class'(name: 'company.platform.ListenerMain')

                }
            }
        }
    }
}

因此,在运行我的 hudson job 时,它调用任务,即 自动化测试 并运行我的 ListenerMain 类(class)。
我需要在 ListenerMain 类文件中添加 if/else 条件,这将根据在 hudson 作业中添加的 System.property 区分运行上述两个类中的任何一个,即 ListenerTest1.java 或 ListenerTest2.java。

例如
@Listeners(value = {PreconditionListener.class})
public class ListenerMain  {
    private static String serviceTypeUseParameter ;
    private static Logger logger = LogManager.getLogger(ListenerMain .class.getName());
    @BeforeClass
    //TestNg Annotation
    public void setup()
    {
        //#############   Hudson job parameter is serviceType ##########
serviceTypeUseParameter = System.getProperty("serviceType");
        if (serviceTypeUseParameter.equals("ListenerTest1Method")){
        // Run ListenerTest1 class
        }
        else{
        // Run ListenerTest2 class
        }
    }
}

根据 if/else 条件加载类需要添加什么代码?
如果需要,我可以在 ListenerMain 类中添加 main 方法。

最佳答案

您可以在 if/else 代码中添加以下代码。并在 runClasses 内方法可以指定测试类。

Result result = JUnitCore.runClasses(ListenerTest1.class);

关于java - 如何从另一个 java 类运行测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375052/

相关文章:

java - 无法将 JMenuBar 添加到 Applet

java - android套接字连接更新图形

带有 Servlet 的 Java 记录器

java - 使用循环创建 JFormattedTextField 时出现 ArrayIndexOutOfBoundsException

gradle - 如何在模型外部访问model.android属性

android - Gradle 同步失败 : Support for builds using Gradle versions older than 2. 6 已删除 [...]。您当前使用的是 Gradle 版本 2.2.1

java - 如何使用 Mockito TestNG 在数据提供者中传递模拟对象?

java - Firefox Gecko 驱动程序无法单击类型为 "file"的输入元素

java - 使用 TestNG 让每个测试方法在其自己的测试类实例中运行?

gradle - 在Kotlin脚本中不起作用 “include”:^意外的标记(使用 ';'在同一行上分隔表达式)