我是Intern的新手,并努力尝试在我的环境中运行一个简单的测试。我能够运行教程测试,但我已经尝试设置一个测试,其中测试文件位于我的app目录层次结构中。正在测试的模块位于:
sandbox/web/libs/ev/grids/FilterGrid.js
测试文件位于:
sandbox/web/libs/ev/tests/FilterGrid.js
我的实习配置文件位于:
sandbox/tests/intern.js
我的加载程序和套件对象如下所示:
loader: {
packages: [
{ name: 'dojo', location: 'web/libs/dojo' },
{ name: 'dijit', location: 'web/libs/dijit },
{ name: 'dgrid', location: 'web/libs/dgrid' },
{ name: 'put-selector', location: 'web/libs/put-selector' },
{ name: 'xstyle', location: 'web/libs/xstyle' },
{ name: 'ev', location: 'web/libs/ev' }
]
},
suites: ['ev/tests/FilterGrid'],
当加载程序尝试加载时,我得到:
Defaulting to "console" reporter
ReferenceError: document is not defined
at /home/bholm/Projects/src/sandbox/web/libs/dojo/selector/_loader.js:5:15
at execModule (/home/bholm/Projects/src/sandbox/node_modules/intern/node_module
/dojo/dojo.js:512:54)
at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:579:7
at guardCheckComplete (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:563:4)
at checkComplete (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:571:27)
at onLoadCallback (/home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:653:7)
at /home/bholm/Projects/src/sandbox/node_modules/intern/node_modules/dojo/dojo.js:746:5
at fs.js:266:14
at Object.oncomplete (fs.js:107:15)
使用Intern的单元测试是否需要定义DOM文档? 我还注意到实习生将dojo2_core列为依赖。所以它使用未发布的代码?
对此有任何帮助将不胜感激!
答案 0 :(得分:3)
看起来您正在尝试使用需要浏览器环境的Node.js客户端加载一些代码。这不行。您只应在浏览器中加载ev/tests/FilterGrid
测试套件。您可以通过修改Intern配置文件来执行此操作,如下所示:
define([ 'intern/node_modules/dojo/has' ], function (has) {
var suites = [];
if (has('host-browser')) {
suites.push('ev/tests/FilterGrid');
}
return {
// ...your existing configuration...
suites: suites,
// ...
};
});