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

jest-cucumber调用loadFeature报Feature file not found错误

问题描述
  • 项目中存在consoleLogger.feature特性文件、对应步骤定义文件consoleLogger.steps.js
  • 步骤定义文件初始代码如下:
import { defineFeature, loadFeature } from 'jest-cucumber';
const consoleLogger = require('../src/Util/consoleLogger');
const feature = loadFeature('../feature/consoleLogger.feature');
  • 执行测试时通过loadFeature关联两个文件失败,抛出如下报错:
FAIL  steps/consoleLogger.steps.js
  ● Test suite failed to run
    Feature file not found (C:\Users\sr00015\NewWorkspace\feature\consoleLogger.feature)
  • 报错核心提示:传入路径下未找到目标feature文件
排查解决步骤
  • 修正路径解析逻辑:loadFeature默认的相对路径是基于执行jest命令的项目根目录解析,不是基于当前步骤文件所在目录解析。当前写法../feature/consoleLogger.feature是从steps目录向上一级寻址,和实际解析规则不匹配,直接改成./feature/consoleLogger.feature即可匹配根目录下的feature文件夹。
  • 若修改相对路径后仍报错,用绝对路径规避解析偏差:引入Node原生path模块,基于当前步骤文件的目录位置拼接绝对路径,完全不受执行目录影响,示例代码:
const path = require('path');
// 其余原有导入逻辑保持不变
const feature = loadFeature(path.join(__dirname, '../feature/consoleLogger.feature'));
  • 完成基础校验:
    • 核对文件名大小写,确保代码里写的文件名和实际文件完全一致,避免跨系统运行的大小写兼容问题
    • 核对目录层级,确认consoleLogger.feature直接存放在项目根目录下的feature文件夹内,没有多余的嵌套层级
    • 如果自定义过jest的rootDir配置或jest-cucumber的全局路径配置,对应调整传入的路径参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:51:31