美文网首页软件测试
如何用Gradle运行TestNG的测试用例

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

作者: 科学Jia | 来源:发表于2018-12-20 11:13 被阅读0次

最近看了公司其他部门,譬如匈牙利,土耳其,夏洛特等各地的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
  • 这个时候细心的你肯定要说,如果有些case我不要跑怎么办?那就用exclude指明。
test { 
    if (project.hasProperty('excludeTests')) { 
        exclude project.property('excludeTests')
    } 
}

运行命令:

gradle test -PexcludeTests=**/Legacy*
  • 这个时候你又要说,如果我只想跑其中两个测试类怎么办?那就试试下面的方式, 直接指明你要跑的case类名。
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的方法比较多,根据具体的情况,自由组合。

以上。

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

相关文章

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

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

  • k13–7/15 selenium04 - TestNG

    功能测试的流程: 分析需求 → 排测试计划 → 设计测试用例 → 执行测试用例 TestNG说明 TestNG 最...

  • 测试-TestNG.XML文件case1

    一、TestNG按顺序执行case 在testng.xml中,可以控制测试用例按顺序执行。 二、TestNG分组执...

  • TestNG依赖测试

    有时候,我们需要按顺序来调用测试用例, 那么测试用例之间就存在依赖关系。 TestNG支持测试用例之间的依赖

  • 批量执行测试用例

    想要批量执行测试用例,可以使用TestNG这个插件,配合maven使用。 1. 创建testng.xml文件 1)...

  • 接口测试之TestNG的使用摘录

    知识点 TestNG Hello World示例- 开始使用TestNG,创建一个简单的测试用例以及如何执行它。 ...

  • 4.修改用例执行顺序或忽略用例执行

    1)修改测试用例执行的顺序 1.使用priority参数修改测试用例的执行顺序 如: priority值越小,运行...

  • testNG

    1.testng.xml结构规则 2.TestNG注解 用于在测试类中注解: 3.Java文件的测试用例中通过获取...

  • pytest 常见命令行参数

    --collect-only查看在给定的配置下哪些测试用例会被执行 -k使用表达式来指定希望运行的测试用例。如果测...

  • Go 中碰到的Signal killed问题

    背景 今天照常写完代码,运行go的测试用例的时候,出现了signal killed。很自然的,go 进程被杀死,测...

网友评论

    本文标题:如何用Gradle运行TestNG的测试用例

    本文链接:https://www.haomeiwen.com/subject/kaiekqtx.html