如何在gradle build中运行单个测试案例

1,493 阅读2分钟

这是一个关于如何在gradle build中运行单个测试案例执行的简短教程

  • 单模块项目
  • 多模块项目

有些时候,为了调试测试用例的执行,我们需要多次运行单个测试用例,从而帮助开发人员调试和多次运行,不浪费时间。测试用例可以是单元或集成或功能测试。

如何在gradle项目中运行单个测试用例?

假设你有测试EmployeeTest java类,位于com.cloudhadoop.emp 包中。它包含两个测试方法testEmployeeNametestEmployeeSalary ,并且没有写测试实现,显示给你看。

package com.cloudhadoop.emp;
class EmployeeTest{
 private void testEmployeeName(){
     //some code

 }
 private void testEmployeeSalary(){
     //some code
     
 }
}

所以你想在上述类中执行单个测试案例-testEmployeeName。

你可以使用下面的命令和--test 选项

下面是一个语法

./gradlew taskname  --test classname

下面是一个测试任务名的例子

gradle test --test "com.cloudhadoop.emp.EmployeeTest.testEmployeeName"

这只执行了一个测试用例。

我们可以为-test选项应用不同的字符串

  • 来自一个给定类别的所有测试用例,即com.cloudhadoop.emp.EmployeeTest
  • 一个页面的所有类别的所有测试用例com.cloudhadoop.emp
  • 正则表达式 -com.cloudhadoop.emp.*Test*

你可以用任何现有的任务名称替换taskname=test。

如何在多模块gradle项目中运行一个测试用例?

你有一个这样的多模块项目

parent 
|-----module1
|-----module2
|-----build.gradle

在父项目中,如果你用-x运行gradle,它不会做任何事情

如何在多模块项目中运行单个测试用例?

gradle :module1:test --test "com.cloudhadoop.emp.EmployeeTest.testEmployeeName"

--test 如果你的构建有不同的风格,命令行中的选项将不起作用,并在终端抛出以下异常。

未知的命令行选项"-tests"。

解决方案是把你的任务名从test 改为'yourtaskname'。

如何在Android应用程序中运行单个测试案例

在Android应用程序中,有时我们想用命令行运行一个单元测试用例的执行。

gradle app:testDebug --tests=com.cloudhadoop.emp.EmployeeTest

总结

你学会了如何在gradle项目中执行单个单元测试用例。

在命令行中,你需要指定任务名和-test选项以及测试用例包的路径。