如何不改动项目结构生成Karate可执行jar文件
Karate API测试项目无结构改动生成可执行Jar解决方案
以下两种方案均不需要修改现有feature文件、测试数据、跨文件调用逻辑,完全保留原有项目结构:
方案1:基于现有Karate可执行Jar直接合并打包(零额外配置新增)
- 确认现有测试资源全部使用相对路径引用,无硬编码绝对路径,该条件你之前可直接用Karate Jar运行部分feature时已经满足
- 下载对应版本的官方Karate独立Fat Jar,和你现有项目的所有测试资源(feature文件夹、
karate-config.js、测试数据文件等)放在同一根目录 - 执行打包命令合并为自定义可执行Jar:
其中jar cvfm karate-custom-exec.jar META-INF/MANIFEST.MF -C /你的项目根目录路径 .META-INF/MANIFEST.MF内容仅需指定主类即可:Main-Class: com.intuit.karate.Main - 服务器运行命令和你本地运行参数完全一致:
java -jar karate-custom-exec.jar <运行参数,如目标feature路径、标签过滤参数、报告配置参数等>
方案2:新增构建配置文件打包(不碰现有测试资源)
- 仅需在项目根目录新增
pom.xml(Maven)或build.gradle(Gradle)配置文件,完全不修改原有测试相关的任何文件 - 以Maven为例,pom.xml仅需引入Karate核心依赖,配置
maven-assembly-plugin打Fat Jar,指定主类为com.intuit.karate.Main,同时配置资源扫描规则包含所有你现有测试目录下的feature、js、json等文件 - 执行
mvn clean package即可在target目录下生成可执行Jar,运行逻辑和本地完全一致
两种方案打包后,Karate会自动识别Jar包内的资源文件路径,原有跨feature调用、数据流转的逻辑不需要做任何调整。
内容的提问来源于stack exchange,提问作者Sudha Sathya
相关产品推荐
相关产品推荐

