Javascript 浏览器客户端中的实习生路径错误
我有一个传统的推荐实习生目录结构:Javascript 浏览器客户端中的实习生路径错误,javascript,unit-testing,intern,Javascript,Unit Testing,Intern,我有一个传统的推荐实习生目录结构: 我的项目 ├── 节点单元 │ ├── 实习怪人 │ │ ├── client.html ├── src │ ├── myFunction.js ├── 测验 │ ├── 实习医生 │ ├── 单元 │ │ ├── ps.js 使用非常简单的配置: useLoader: { 'host-node': 'dojo/dojo', 'host-browser': 'node_modules/dojo/dojo.js
我的项目
├── 节点单元
│ ├── 实习怪人
│ │ ├── client.html
├── src
│ ├── myFunction.js
├── 测验
│ ├── 实习医生
│ ├── 单元
│ │ ├── 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
。通过常规(非极客)实习生教程,我没有遇到这种麻烦。由于baseUrl
默认为client.html
上的两个目录,我看不出我做错了什么。谢谢你的帮助。(是的,我将需要geezer用于古代IE。不,我不想重写作为AMD模块测试的功能。)实习生加载程序不知道如何进行测试,因为它们尚未注册为软件包。当使用推荐的目录结构时,您还需要设置推荐的目录结构,以便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');
现在,实习生应该能够正确地找到代码和测试。是的,我从那开始。现在再试一次。不起作用。有了这些代码,client.html正在寻找“node_modules/intern geezer/app/myFunction.js”,但没有找到它。似乎实习生是围绕AMD的假设而设计的。我指向该文件的唯一方法似乎是在单元测试中使用“require('../../src/myFunction.js');”硬编码路径,该代码有效,但似乎完全错误。您能展示一下您所尝试的吗?我用进行了复制,直到我将
loader.packages
更改为[]
loader: {
packages: [
{ name: 'app', location: 'src/' },
{ name: 'tests', location: 'tests/' }
]
}