Dojo Intern:从窗口小部件类加载依赖项时单元测试失败

时间:2014-12-23 16:10:56

标签: javascript dojo amd intern

我正在尝试使用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) { ... }

0 个答案:

没有答案