Gradle 实战 - test vs check-ApiHug准备-工具篇-014

2024-04-15 09:12

本文主要是介绍Gradle 实战 - test vs check-ApiHug准备-工具篇-014,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  🤗 ApiHug × {Postman|Swagger|Api...} = 快↑ 准√ 省↓

  1. GitHub - apihug/apihug.com: All abou the Apihug   
  2. apihug.com: 有爱,有温度,有质量,有信任
  3. ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace

ApiHug 整个工具链基于 Gradle, 使用 ApiHug 准备工作最先需要学习的就是 gradle. 工欲善其事,必先利其器

check 和 test 在是 gradle 中常用的两个任务,他们有相似第三方, 此篇文章具体分析他们的差别。

#Gradle

Gradle 是用来做依赖管理工具, 提供各种函数方便来管理构建的整个生命周期, 从测试到最后的发布。

Gradle 通过不同的 task 来完成这些任务, 每个任务都是整个过程的一个环节比如:

  1. 源码编译 compile
  2. 打包成模块
  3. 把模块发布到远程系统

Gradle 有两种类型任务:

  1. 可执行任务, 也就是响应的动作行为
  2. lifecycle 任务,是流程任务, 不包含任何动作, check 即是。

check & test 任务解释:

Verification tasks
------------------
check - Runs all checks.
test - Runs the test suite.

#test

Test 文档open in new window; gradlew test 即用来执行此任务。

Executes JUnit (3.8.x, 4.x or 5.x) or TestNG tests. Test are always run in (one or more) separate JVMs.

test 任务将会执行所有的单元测试, 并测试测试报告。

test 是做 TDD 测试非常重要的一个环节, 我们将有一个专门的篇章讲如何写测试。

#check

check 是一个 lifecycle 任务, 也就是本身她不包含任务操作, 默认 check 讲执行 test 任务, 也就是没有其他插件, check 效果和 test 一样。

check 将所有 验证任务的输出结果汇总起来。 这可以让我们将多个任务的检查结果聚集起来, 避免一个一个操作。 而扩展 The Checkstyle Pluginopen in new window 提供更多扩展功能。

check 其实是由 Base 插件open in new window 引入进来。

check — lifecycle task

Plugins and build authors should attach their verification tasks, such as ones that run tests, to this lifecycle task using check.dependsOn(task).

执行 check 结果输出:

gradlew.bat check --console=verbose
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE

比如 checkstyle

plugins {// Apply the application plugin to add support for building a CLI application in Java.id 'application'id 'java'id 'checkstyle'
}

可以发现多了两个任务: checkstyleMain && checkstyleTest:


> gradlew.bat check --console=verbose --stacktrace
> Task :app:compileJava UP-TO-DATE
> Task :app:processResources NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:checkstyleMain
> Task :app:compileTestJava
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses
> Task :app:checkstyleTest
> Task :app:test
> Task :app:check

如果你自己需要添加自己的依赖检查条件比如下面:

task integrationTest {doLast {println 'hello'}
}tasks.named("check").configure {dependsOn(tasks.named("integrationTest"))
}

执行 check :

> Task :app:integrationTest
hello> Task :app:test UP-TO-DATE
> Task :app:check

什么情况下会触发 check, 平时常用的 build 同样会触发:

> gradlew.bat build --console=verbose
---
> Task :app:compileJava UP-TO-DATE
> Task :app:processResources NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:jar
> Task :app:startScripts
> Task :app:distTar
> Task :app:distZip
> Task :app:assemble
> Task :app:checkstyleMain UP-TO-DATE
> Task :app:compileTestJava UP-TO-DATE
> Task :app:processTestResources NO-SOURCE
> Task :app:testClasses UP-TO-DATE
> Task :app:checkstyleTest UP-TO-DATE> Task :app:integrationTest
hello> Task :app:test UP-TO-DATE
> Task :app:check
> Task :app:build

项目地址 gradle check VS test 例子open in new window

#参考

  1. Gradle check task essentials

我们

api-hug-contact

这篇关于Gradle 实战 - test vs check-ApiHug准备-工具篇-014的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/905423

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版