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/' }
    ]
  }