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

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

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