通过gradlebuild 或run 命令,默认执行测试用例的执行。有时,我们想在执行gradle项目时禁用或忽略测试执行。
在Maven中,你可以通过命令行中的选项-DskipTests=true ,轻松实现。
本博客讲述了在gradle项目中禁用测试用例的不同方法。这将跳过以下测试用例
- 单元测试用例
- 集成测试
gradle命令中是否有-DskipTests?
不,它是不可用的。
用测试排除gradle任务
通常在你运行gradle build命令时,用测试排除gradle任务。
下面是一个任务执行的序列
gradle build
Task :compileJava
> Task :processResources
> Task :classes
> Task :jar
> Task :assemble
> Task :compileTestJava
> Task :processTestResources
> Task :testClasses
> Task :test
> Task :check
> Task :build
gradle有一个选项可以在构建过程中排除(-x)或--exclude-task 一个任务。
test 是一个内置的任务,用于执行测试代码。
gradle build -x test
or
gradle build --exclude-task test
下面是一个运行任务的输出
> Task :compileJava NO-SOURCE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :jar
> Task :assemble
> Task :check
> Task :build
测试源代码没有被运行,即compileTestJava testClasses test 任务被忽略,没有被执行。这对多模块项目不起作用
假设你有这样的多模块项目
parent
|-----module1
|-----module2
|-----build.gradle
在父项目中,如果你用-x运行gradle,它不会做任何事情
所以你必须运行两个命令来禁用多模块项目中的测试用例执行。
gradle build -x :module1:test
gradle build -x :module2:test
假设你有多模块项目
建立gradle脚本来禁止测试用例的编译和执行。
我们可以在构建脚本中使用一些属性配置来禁止测试用例的执行。
现在我们要根据onlyIf 条件来跳过测试任务的测试用例执行。
让我们添加 skipTest 布尔属性。
test.onlyIf { ! Boolean.getBoolean(skipTests) }
接下来,用-D运行带有布尔属性的gradle命令
gradle build -DskipTests=true
这将在执行gradle build项目时不执行测试任务。
如何在gradle中用包或类的名字执行单元测试
这是另一种排除测试案例执行的方法,使用
- 包名
- 类名
- 正则表达式
在build.gradle中,你可以用包或类或正则表达式添加exclude 属性测试类。
test{
exclude 'com/'
exclude '**/EmpTest.class'
exclude '**/**UnitTest'
}
总结
在本教程中,学习了在gradle项目中跳过测试用例的执行
- 使用命令行的单模块和多模块项目
- 基于ngIf条件的构建脚本
- 用包或类的名称或正则表达式在构建脚本中添加测试类的排除。