我有一个传统推荐的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目录中寻找测试套件:
我没有在配置(或浏览器URL)中设置baseUrl
。我没有经历常规(非geezer)实习生教程的麻烦。由于baseUrl
默认为client.html
以上的两个目录,我看不出我做错了什么。谢谢你的帮助。 (是的,对于古老的IE,我需要geezer。不,我不想重写我作为AMD模块测试的功能。)
答案 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');
现在,实习生应该能够正确地找到代码和测试。