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

无法运行Cypress Cucumber测试,出现异常Gherkin错误

问题解析与修复方案

核心问题定位

结合你的配置和Feature文件,问题出在两个关键点:

  1. Examples块标签不兼容:@badeball/cypress-cucumber-preprocessor的新版本不再支持给Scenario Outline下的Examples块单独打标签,这种写法会导致预处理器无法正确解析测试场景。
  2. 步骤定义路径未配置:你的Cypress配置里没指定步骤定义文件的位置,预处理器找不到对应的步骤实现代码。

具体修复步骤

1. 调整Feature文件标签写法

把标签从Examples块移到独立的Scenario Outline上,拆分场景来实现按标签运行:

@google
Scenario Outline: 验证Google搜索栏显示
  When user visits <site>
  Then <site> search bar will display

  Examples:
    | site        |
    | google.com  |

@duckduckgo
Scenario Outline: 验证DuckDuckGo搜索栏显示
  When user visits <site>
  Then <site> search bar will display

  Examples:
    | site            |
    | duckduckgo.com  |

如果想保留单个Scenario Outline,改用命令行标签过滤(比如cypress run --env tags="@google"),不要给Examples块直接打标签。

2. 完善Cypress配置,添加步骤定义路径

在cypress.config.js中补充stepDefinitions配置,指定你的步骤定义文件所在路径(根据实际项目结构调整):

const { defineConfig } = require("cypress");
const preprocessor = require("@badeball/cypress-cucumber-preprocessor");
const browserify = require("@badeball/cypress-cucumber-preprocessor/browserify");

async function setupNodeEvents(on, config) {
  await preprocessor.addCucumberPreprocessorPlugin(on, config);
  on("file:preprocessor", browserify.default(config));
  return config;
}

module.exports = defineConfig({
  e2e: {
    specPattern: "**/*.feature",
    setupNodeEvents,
    // 指定步骤定义文件路径
    stepDefinitions: "cypress/e2e/step_definitions/**/*.js"
  },
});

3. 验证步骤定义文件

确保步骤定义文件(比如steps.js)正确实现了Feature中的步骤,且路径和配置一致:

import { When, Then } from "@badeball/cypress-cucumber-preprocessor";

When("user visits {string}", (site) => {
  cy.visit(`https://${site}`);
});

Then("{string} search bar will display", (site) => {
  // 根据站点编写对应断言
  cy.get('input[name="q"]').should("be.visible");
});

4. 检查版本兼容性

如果以上调整后仍有问题,尝试回退到之前能正常运行的@badeball/cypress-cucumber-preprocessor版本,或者升级到最新稳定版,避免版本不兼容导致的解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:05:49