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

Cucumber+WebdriverIO环境下如何让跳过的测试生成Allure报告结果

WebdriverIO + Cucumber 7.x Allure报告记录跳过用例解决方案
  • 第一步,修改wdio.conf.js中的Allure报告配置,添加专属开关开启跳过用例记录:
    在reporters配置的Allure参数中增加reportSkippedCucumberSteps: true,参考配置如下:
    reporters: [
      ['allure', {
        outputDir: 'allure-results',
        // 核心配置项,开启Cucumber跳过场景/步骤的上报
        reportSkippedCucumberSteps: true,
        disableWebdriverStepsReporting: false,
        disableWebdriverScreenshotsReporting: false,
      }]
    ]
    
  • 第二步,若基础配置不生效,手动在Cucumber钩子中上报跳过状态:
    对于通过@skip等自定义标签标记的跳过用例,在Before钩子中触发Allure的状态上报逻辑,参考代码如下:
    Before(function (scenario) {
      // 判断是否存在跳过标签
      const isSkip = scenario.pickle.tags.some(tag => tag.name === '@skip')
      if (isSkip) {
        require('@wdio/allure-reporter').default.addStep('用例标记为跳过', {}, 'skipped')
        this.skip()
      }
    })
    
  • 额外适配注意事项:
    Cucumber 7.x版本默认会过滤未进入执行流程的用例结果,需要在Cucumber配置中将ignoreUndefinedDefinitions设为false,同时不要使用--dry-run参数执行测试,该模式下所有未实际执行的用例都不会生成结果记录。

该场景和Mocha的差异来自于两个测试框架的上报逻辑不同:Mocha默认会将所有声明的用例(包括已标记跳过未执行的)状态统一上报给报告插件,而Cucumber 7+仅会上报实际进入执行流程的用例,因此需要额外配置强制触发跳过状态的上报。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:15:08