浏览器客户端中的实习路径错误

时间:2015-04-01 17:58:06

标签: javascript unit-testing intern

我有一个传统推荐的Intern目录结构:

MyProject ├── node_modules │ ├── intern-geezer │ │ ├── client.html ├── src │ ├── myFunction.js ├── tests │ ├── intern.js │ ├── unit │ │ ├── ps.js

配置非常简单:

useLoader: {
    'host-node': 'dojo/dojo',
    'host-browser': 'node_modules/dojo/dojo.js'
},

loader: {
    packages: []
},

suites: [ 'tests/unit/ps' ]

和测试:

define(function (require) {
    var tdd = require('intern!tdd');

    var assert = require('intern/chai!assert'); 

    // Global function to test, not an AMD module
    var parseF = require('src/myFunction.js');

    var he = require('tests/he');

    tdd.suite('My tests', function() {
       //etc
   });
});

````

但是当我打开浏览器客户端时,加载器正在intern-geezer目录中寻找测试套件:

enter image description here

我没有在配置(或浏览器URL)中设置baseUrl。我没有经历常规(非geezer)实习生教程的麻烦。由于baseUrl默认为client.html以上的两个目录,我看不出我做错了什么。谢谢你的帮助。 (是的,对于古老的IE,我需要geezer。不,我不想重写我作为AMD模块测试的功能。)

1 个答案:

答案 0 :(得分:0)

Intern加载程序不知道如何进入测试,因为它们尚未注册为包。使用推荐的目录结构时,您还需要设置推荐的loader configuration,以便Intern知道在哪里找到您的代码和测试。

  loader: {
    packages: [
      { name: 'app', location: 'src/' },
      { name: 'tests', location: 'tests/' }
    ]
  }

然后,更新您的测试以正确找到您需要测试的代码。

    // Global function to test, not an AMD module
    var parseF = require('app/myFunction.js');

现在,实习生应该能够正确地找到代码和测试。