2015-04-01 57 views
0

我有一个传统的推荐实习生的目录结构:实习生路径错误

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 
    }); 
}); 

````

但是当我打开浏览器客户端装载机正在寻找测试套件实习生,这辆目录中:

enter image description here

我不是在配置设置baseUrl(或在浏览器URL)。通过常规(非geezer)实习生教程,我没有遇到这种麻烦。由于baseUrl默认为client.html以上的两个目录,我不明白我做错了什么。谢谢你的帮助。 (是的,我将需要geezer为古代的IE浏览器。不,我不想重写我测试的AMD模块的功能。)

回答

0

实习生装载程序不知道如何去测试,因为他们尚未注册为一个包。在使用推荐的目录结构时,您还需要设置建议的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'); 

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

+0

是的,我从那开始。现在再试一次。不起作用。使用该代码,client.html正在查找“node_modules/intern-geezer/app/myFunction.js”,但未找到它。似乎Intern实际上是围绕着AMD的假设而设计的。我似乎指向该文件的唯一方法是在单元测试中用“require('../../ src/myFunction.js');”这工作但似乎完全错误。 – Ben 2015-04-02 16:51:22

+0

你可以展示你试过的吗?我转载了[intern-tutorial](https://github.com/theintern/intern-tutorial),直到我将'loader.packages'改为'[]' – nicknisi 2015-04-02 20:32:05