You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Karate框架是否支持按标签或名称执行被调用feature文件指定场景

Karate调用其他feature指定场景的实现方案

Karate原生支持通过标签或场景名调用其他feature文件内的指定场景,无需额外替代方案,具体用法如下:

核心调用语法

Karate 0.9.5及以上版本支持在call指令的文件路径后追加标识,匹配目标场景:

  • 按标签匹配:call read('目标文件路径@标签名')
  • 按场景名称匹配:call read('目标文件路径#场景完整名称')

实际使用示例

针对你提到的GIT校验复用场景,可按以下步骤实现:

  1. 先给公共校验文件git-check.feature内的对应场景打标签,比如:
@checkBranchExists
Scenario: 校验GIT分支存在性
  * def branchName = typeof branchName == 'undefined' ? 'main' : branchName
  * def expectExists = typeof expectExists == 'undefined' ? true : expectExists
  # 此处省略GIT分支校验的具体执行逻辑
  * def checkPass = <校验结果布尔值>
  1. 在业务测试文件中调用指定场景,同时传入自定义参数:
# 执行业务操作:创建dev/feature-001分支
Given path '/git/branch/create'
And request { name: 'dev/feature-001' }
When method post
Then status 200

# 调用公共校验场景校验分支是否成功创建
* def checkResult = call read('classpath:git-check.feature@checkBranchExists') { branchName: 'dev/feature-001', expectExists: true }
* match checkResult.checkPass == true

注意事项

  • 调用指定场景时,目标feature文件的Background块会正常执行,公共初始化逻辑可正常复用
  • 仅匹配到的目标场景会执行,同文件内的其他场景不会被触发,符合用例复用的效率要求

内容的提问来源于stack exchange,提问作者Basava Kumar M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:27:04