Cucumber安装异常求助:解决调用未运行实例错误
修复Cucumber安装冲突错误的方案
核心问题分析
你遇到的错误根源是项目中同时存在两个独立的Cucumber包实例:
- 手动安装的旧版
cucumber@6.0.7 - WDIO Cucumber框架(
@wdio/cucumber-framework@8.29.1)依赖的新版@cucumber/cucumber@9.5.1
步骤定义文件加载了未被WDIO初始化的旧版Cucumber实例,因此触发"You're calling functions on an instance of Cucumber that isn't running"错误。
具体修复步骤
1. 移除冲突的旧版Cucumber包
执行命令删除项目中手动安装的旧版cucumber:
npm uninstall cucumber --save-dev
2. 清理依赖并重新安装
- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json文件 - 重新安装所有依赖:
npm install
3. 修正步骤定义的导入语句
检查所有步骤定义文件(比如service-steps.js),确保导入的是WDIO框架提供的Cucumber API:
// 正确写法 const { Given, When, Then } = require('@wdio/cucumber-framework') // 错误写法(必须替换掉) // const { Given, When, Then } = require('cucumber')
4. 移除全局安装的Cucumber(如果有)
执行命令检查并删除全局的Cucumber包:
# 查看全局已安装包 npm list -g --depth=0 # 若存在则删除 npm uninstall -g cucumber
验证修复
重新运行测试命令:
npm run test
内容的提问来源于stack exchange,提问作者Mr. E
相关产品推荐
相关产品推荐

