手记

【九月打卡】第二十天 使用gradle进行测试

第一模块:课程介绍

课程名称:新一代构建工具gradle
课程章节:4-8 自动化测试
主讲老师:skyding

第二模块:课程内容

了解使用gradle进行测试

第三模块:课程收获

Gradle测试

一些开源的测试框架比如JUnit,TestNG能够帮助你编写可复用的结构化的测试,为了运行这些测试,你要先编译它们,就像编译源代码一样。测试代码的作用仅仅用于测试的情况,不应该被发布到生产环境中,需要把源代码和测试代码分开来。

项目结构

在创建项目的时候,会自动带一个测试的目录

那么现在开始配置测试的依赖

在创建项目的时候,模板已经帮我们引入了测试的依赖

dependencies {
    implementation 'ch.qos.logback:logback-classic:1.2.11'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

junit 是Java进行测试的工具。

包括和排除指定的测试

junit有一个include和exclude方法。这些方法可以用于指定哪些测试应该运行。

test {
    include 'com.imooc.gradle/*'
    useJUnitPlatform()
}

同理,可以使用exclude来跳过不需要进行的测试

开始进行测试

先编写一个测试的代码:

使用@Test注解来标记测试用例

点击右侧的绿色按钮开始进行测试。

很显然这个是失败的。

那么测试在gradle有什么作用呢?

gradle进行构建的时候,会执行测试任务,以便代码能够正确的执行。

点击右侧的build按钮来进行编译,结果会编译失败,因为有一个测试用例失败了。

23:29:36: 正在执行 'build'…

> Task :model:compileJava UP-TO-DATE
> Task :model:processResources NO-SOURCE
> Task :model:classes UP-TO-DATE
> Task :model:jar UP-TO-DATE
> Task :repository:compileJava UP-TO-DATE
> Task :repository:processResources NO-SOURCE
> Task :repository:classes UP-TO-DATE
> Task :repository:jar UP-TO-DATE
> Task :repository:assemble UP-TO-DATE
> Task :repository:compileTestJava UP-TO-DATE
> Task :repository:processTestResources NO-SOURCE
> Task :repository:testClasses UP-TO-DATE

> Task :repository:test FAILED

Test2 > test2() FAILED
    java.lang.AssertionError at Test2.java:18
6 actionable tasks: 1 executed, 5 up-to-date

2 tests completed, 1 failed

现在把这个用例改对,然后再次执行build

现在,就成功编译了。

测试发现

那么gradle是怎么发现这些测试的代码的呢?

gradle会扫描所有的.class文件,在使用JUnit时,如果符合一下条件,这个类就会被使用Junit测试类

  • 类或超类继承了TestCase或GroovyTestCase
  • 类或超类使用@RunWith注解
  • 类或超类包含以@Test注解的方法
  • 使用TestNG时,我们扫描使用@Test注解的方法

总结

好的测试,对项目的质量至关重要,gradle对测试的集成,大大保证了项目的质量。

第四模块:课程记录

0人推荐
随时随地看视频
慕课网APP