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

Karate并行运行器问题:单个Feature文件被执行两次

解决Karate并行运行时单个Feature重复执行的问题

问题分析

你的场景中,Karate Runner扫描指定文件夹路径时,将同一个logic.feature文件识别为两个独立的feature条目,导致重复执行。常见触发原因包括:

  • classpath中存在相同路径的logic.feature副本(比如源文件与编译后生成的文件同时被纳入扫描范围)
  • 文件夹路径扫描规则触发了重复匹配
  • Runner未启用路径去重机制

修复方案

1. 直接指定具体Feature文件路径

将Runner的路径指向单个feature文件而非文件夹,从根源避免扫描到重复条目:

Results results = Runner.path("classpath:pl/warta/karate/tests/regression/parametersMapping/prepareInitialRequest/clientNameAndSurname/features/logic.feature")

2. 清理classpath中的重复文件

检查项目的target或build目录,确认是否存在编译生成的logic.feature副本,与src/test/resources下的源文件同时被包含在classpath中。执行构建工具的清理命令(如Maven的mvn clean、Gradle的gradle clean)后重新运行测试,消除重复文件。

3. 启用Runner的路径去重机制

在Runner配置中添加distinct()方法,强制对扫描到的feature路径进行去重处理:

Results results = Runner.path("classpath:pl/warta/karate/tests/regression/parametersMapping/prepareInitialRequest/clientNameAndSurname/features")
                        .distinct()

4. 排除Scenario Outline的正常多轮执行(澄清误解)

若你的Scenario Outline包含多组Examples测试数据,Karate会为每组数据执行一次场景,但日志会标注场景执行次数而非feature计数。你的日志明确显示feature 2 of 2,因此不属于这种情况,可跳过此检查。

内容的提问来源于stack exchange,提问作者Test12345

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:42:14