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
相关产品推荐
相关产品推荐

