软件测试

如何用Gradle运行TestNG的测试用例

2018-12-20  本文已影响0人  科学Jia

最近看了公司其他部门,譬如匈牙利,土耳其,夏洛特等各地的JAVA测试代码,其中,土耳其和匈牙利的测试代码写的水平最高,有设计感。

进入正题,Gradle配置Testng,除了我们曾经常见的配置testng.xml的方式,还有一种不需要配置testng.xml的方式,对于后者直接贴Gradle的代码吧。
重点在于:useTestNG() 和 include "/${testClass}.class"

test {
    testLogging.showStandardStreams = true
    systemProperty 'arg1', System.getProperty('arg1')
    systemProperty 'arg3', System.getProperty('arg3')
    systemProperty 'arg4', System.getProperty('arg4')

    useTestNG()
    include "**/${testClass}.class"
    println "$testClass"
    afterTest { desc, result ->
        logger.quiet "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}

然后你用gradle执行testng的时候,就可以用如下命令去指定测试用例的名字,以及跑测试的环境,譬如Integ,还有设置一些其他的系统环境变量,譬如用户名什么的。

gradlew clean test --refresh-dependencies -PtestClass=*E2ETests -Darg3=INTEG -Darg4=DEVELOPER_ADMIN
test { 
    if (project.hasProperty('excludeTests')) { 
        exclude project.property('excludeTests')
    } 
}

运行命令:

gradle test -PexcludeTests=**/Legacy*
test {
    testLogging.showStandardStreams = true
    systemProperty 'arg1', System.getProperty('arg1')
    systemProperty 'arg3', System.getProperty('arg3')
    systemProperty 'arg4', System.getProperty('arg4')

    useTestNG()
    //include "**/${testClass}.class"
    include "**/SignalCalculationControllerE2Etests.class"
    include "**/KpiControllerE2ETests.class"
    //println "$testClass"
    afterTest { desc, result ->
        logger.quiet "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}

回答不上,所以,以上的方法就忘记吧。下面介绍新方法:

划个重点: test这个task还是要在gradle文件里写好的。对于上面的例子,改造成如下:

test {
    testLogging.showStandardStreams = true
    systemProperty 'arg1', System.getProperty('arg1')
    systemProperty 'arg3', System.getProperty('arg3')
    systemProperty 'arg4', System.getProperty('arg4')

    useTestNG()
  
    afterTest { desc, result ->
        logger.quiet "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}

不用配置gradle文件,直接运行gradle的命令。
第一个--tests我指定了哪个类的哪个测试method,譬如指定了executeTest这个方法;
第二个--tests我指定了另外一个测试类。

gradlew clean test --tests SignalCalculationControllerE2Etests.executeTest --tests KpiControllerE2ETests -Darg3=INTEG -Darg4=DEVELOPER_ADMIN

最后要说的是,Gradle运行TestNG的方法比较多,根据具体的情况,自由组合。

以上。

在写这个笔记的时候,大老板从背后路过,假装没有看到他看到我了。<( ̄ ̄)/

上一篇下一篇

猜你喜欢

热点阅读