我正在尝试使用Dojo Intern运行单元测试。我的项目结构与下面的内容类似。我得到的问题是当我尝试在独立的浏览器客户端中测试小部件时,我收到以下错误:
TypeError:undefined不是函数deps:“dojo / cldr / nls / gregorian”
TypeError:undefined不是函数deps:“dojo / cldr / nls / number”
当我在独立的Node.js客户端中测试窗口小部件时,我得到:
ReferenceError:未定义文档 在C:/Repos/trunk/src/main/webapp/js/dojo/has.js:102:37 在execModule(C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:515:54) 在C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:504:12 在Array.map(本机) 在execModule(C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:499:17) 在C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:504:12 在Array.map(本机) 在execModule(C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:499:17) 在C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:582:7 在guardCheckComplete(C:\ Users \ yolo \ AppData \ Roaming \ npm \ node_modules \ intern \ node_modules \ dojo \ dojo.js:566:4)
我不确定为什么会产生这些错误。是因为Intern无法从小部件foo.js加载其他依赖项吗?有人可以帮我指点一下如何解决这个问题吗?
项目结构:
/myProject
js/
app/
widgets/
foo.js
dijit/
dojo/
dojox/
tests/
functional/
unit/
widgets/
foo.js
all.js
intern.js
node_modules/
intern/
package.json
all.js
define([
'./unit/widgets/foo'
], function() {});
intern.js config:
define({
proxyPort: 9000,
proxyUrl: 'http://localhost:9000/',
environments: [{ browserName: 'chrome' }],
tunnel: 'NullTunnel',
useSauceConnect: false,
useLoader: {
'host-node': 'dojo/dojo',
'host-browser': 'node_modules/dojo/dojo.js'
},
loader: {
packages: [
{ name: 'main', location: 'js/app/widgets' },
{ name: 'dijit', location: 'js/dijit'},
{ name: 'dojo', location: 'js/dojo' },
{ name: 'dojox', location: 'js/dojox' }
]},
suites: [ 'tests/all' ],
excludeInstrumentation: /^(?:tests|node_modules)\//
});
JS /应用/小工具/ foo.js
define(["dojo/_base/lang",
"dojo/date",
"dojo/date/locale",
"dojo/number",
"dojo/string",
"dojox/date/timezone"], function (lang, date, locale, number, string) { ... }
测试/单元/部件/ foo.js
define([
'intern!object',
'intern/chai!assert',
'main/foo'
], function (registerSuite, assert, main) { ... }