gradle学习笔记:gradle契约测试的执行命令

2024-08-27 15:58

本文主要是介绍gradle学习笔记:gradle契约测试的执行命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境

gradle项目
测试框架:mockito

前言

个人笔记,非教程

配置生成测试代码的任务

// 用于生成 Mock 测试,即测试生成的 Mock 是否符合契约
task generateMockTests << {def contractBasePath = projectDir.getAbsolutePath() + '/src/test/java/com/xingren/pms/api/contract/AbstractContractTest.java'def contractTestDir = projectDir.getAbsolutePath() + '/gensrc/test/java/com/xingren/pms/api/contract/'def mockTestDir = projectDir.getAbsolutePath() + '/gensrc/test/java/com/xingren/pms/api/mock/'new File(mockTestDir).mkdirs()new File(contractTestDir).mkdirs()// 拷贝 TestBase 文件并设置为 MockTest 类别def updatedBaseContent = new File(contractBasePath).getText('UTF-8').replaceAll('package com.xingren.pms.api.contract', 'package com.xingren.pms.api.mock').replaceAll('class AbstractContractTest', 'class AbstractMockTest').replaceAll('ContractTest.class', 'com.xingren.pms.api.category.MockTest.class')def newBaseFile = new File(mockTestDir + 'AbstractMockTest.java')newBaseFile.write(updatedBaseContent, 'UTF-8')// 拷贝 ContractTest 文件并修改为 Mock 测试new File(contractTestDir).eachFileRecurse { file ->if (file.name.endsWith('Test.java') && !file.name.endsWith('MockTest.java')) {def newFile = new File(mockTestDir + file.name.replace('Test.java', 'MockTest.java'))def updatedContent = file.getText('UTF-8').replaceAll('package com.xingren.pms.api.contract', 'package com.xingren.pms.api.mock').replaceAll('io.restassured.module.mockmvc.RestAssuredMockMvc\\.\\*', 'io.restassured.RestAssured.*').replaceAll('module.mockmvc.specification.MockMvcRequestSpecification', 'specification.RequestSpecification').replaceAll('MockMvcRequestSpecification', 'RequestSpecification').replaceAll('Test extends AbstractContractTest', 'MockTest extends AbstractMockTest')newFile.write(updatedContent, 'UTF-8')}}
}generateMockTests.dependsOn generateContractTests
compileTestJava.dependsOn generateMockTests

生成测试代码命令

./gradlew :admin:generateContractTests  -x vueBuild

-x 跳过某项任务
vueBuild是项目里配置的前端路径,如下:

task vueBuild(type: NpmTask) {workingDir = file("$projectDir/frontend")args = ['run', 'build']
}

执行契约测试

./gradlew :admin:test -x vueBuild

单独启动后端命令

在设置如下配置后:

bootRun {addResources = truedef env = 'env'systemProperty env, System.getProperty(env, 'DEV')
}

执行:

./gradlew clean :admin:bootRun -x vueBuild -x test -x check

这篇关于gradle学习笔记:gradle契约测试的执行命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Gradle在国内配置镜像加速的实现步骤

《Gradle在国内配置镜像加速的实现步骤》在国内使用Gradle构建项目时,最大的痛点就是依赖下载贼慢,甚至卡死,下面教你如何配置国内镜像加速Gradle下载依赖,主要是通过改写repositori... 目录引言一、修改 build.gradle 或 settings.gradle 的 reposito

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx