我已经与 Intern 斗争了很长时间,以测试服务器代码(遵循这些建议)和客户端代码(例如,在我的这个项目中定义的传统应用程序)。
实习生配置文件包含:
loader: {
packages: [
{ name: 'dojo', location: './libs/dojo' },
{ name: 'server', location: './server' }
]
},
但是,dojo 包的位置总是被忽略。报告的错误是:
$ node node_modules/intern/client.js config=intern suites=server/model/tests/News
Defaulting to "console" reporter
Error: Failed to load module dojo/_base/declare from <root>/dojo/_base/declare.js (parent: server/model/Ne
ws)
at <root>\node_modules\intern\node_modules\dojo\dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)
我对 <root> 部分进行了编辑以简化输出。
我目前的解决方法是在 <root> 级别复制 dojo 文件夹,但这很不方便......
我当前的文件夹结构是:
<root>
|- client
|- libs
| |- dojo
| |- ...
|- node_modules
| |- grunt
| |- intern
| |- ...
|- server
|- dao
| |- tests
|- model
| |- tests
|- ...
我哪里错了?
更新:在我阅读的所有地方(如这里),配置都被指定为 MID,而不是带有扩展名的文件名。当我使用“ config=intern.js ”运行我的命令时,配置被正确处理(我已经破解了“client.js”来记录配置内容)。注意:我在 Windows 机器上运行 Node.js/Intern...
附加信息:这是处理我的测试所需的最少内容。
define({
loader: {
packages: [
{ name: 'dojo', location: './libs/dojo' },
{ name: 'server', location: './server' }
]
},
suites: [ 'server/allTests' ]
});