Windows环境下用Nightwatch.js做POC时遇“No source folder defined”错误求助
嘿,我来帮你搞定这个Nightwatch的报错问题!这个错误本质是Nightwatch找不到你的测试用例所在的文件夹——它在配置里没拿到正确的源目录路径,所以启动Runner的时候才会抛出这个异常。
下面是具体的解决步骤:
检查并修改Nightwatch配置文件
首先找到项目根目录下的Nightwatch配置文件(通常是nightwatch.conf.js或者nightwatch.json),确保里面存在src_folders字段,并且它的值指向你的测试文件实际所在的目录。
举个例子,如果你的测试文件都放在项目根目录的tests文件夹里,配置应该写成这样:module.exports = { src_folders: ['tests'], // 这里填写你的测试目录路径 // 其他配置项(比如selenium、测试环境设置)... }确认路径的正确性
Windows系统下,路径可以用相对路径,推荐用正斜杠/(或者双反斜杠\\,不过正斜杠更不容易出错)。比如你的测试文件在e2e/tests目录下,就写src_folders: ['e2e/tests']。
你还可以手动验证:在项目根目录打开命令行,输入dir 你的路径(比如dir tests),确认这个文件夹确实存在,并且里面有测试文件(比如.js或者.feature文件)。使用nightwatch-cucumber的额外注意点
因为你用的是nightwatch-cucumber示例项目,除了src_folders,还要确保cucumber相关的路径配置正确,比如feature_path和step_definitions,不过核心还是src_folders必须正确设置——Nightwatch的Runner依赖这个字段找到测试入口。
给你一个完整的配置示例参考:
module.exports = { src_folders: ['tests/e2e'], test_settings: { default: { launch_url: 'http://localhost:3000', selenium_port: 4444, selenium_host: 'localhost', desiredCapabilities: { browserName: 'chrome', javascriptEnabled: true, acceptSslCerts: true } } }, // cucumber相关配置 cucumber: { feature_path: 'tests/features', step_definitions: 'tests/step_definitions', format: 'pretty' } }
修改完配置之后,重启你的Nightwatch服务,这个报错应该就消失啦!
内容的提问来源于stack exchange,提问作者yek

