测试没有在karma / jasmine / require.js上运行'* lib *没有时间戳!'错误

时间:2013-09-25 22:51:26

标签: javascript angularjs requirejs jasmine karma-runner

我更改代码,扩展一些功能并为其添加新的unittest。现在,当我用业力(测试框架 - jasmine )运行我的单元测试时,它会给我一个错误

'There is no timestamp for /libs/angular-bootstrap/ui-bootstrap-tpls.js!'
Uncaught Error: Script error for: angular-bootstrap
http://requirejs.org/docs/errors.html#scripterror
at http://localhost:9876/base/node_modules/karma-requirejs/lib/require.js?1379984163000:138

我做错了什么?

3 个答案:

答案 0 :(得分:3)

完全是我的错。使用karma-requirejs时,您有main-test.js文件,其中配置如何require.js获取文件。我错误地添加了对angular-bootstrap的引用,这就是为什么require.js找不到这个文件并抛出这个错误的原因。 所以在我的情况下,这个错误意味着提供了错误的文件名。

答案 1 :(得分:1)

可能是因为它无法访问您的源文件。您应该配置karma来提供需要查找它们的脚本。 例如,在karma conf中有配置

files:[{pattern: 'node_modules/**/*.js', included:false}]

答案 2 :(得分:1)

问题是陈旧的,OP现在已经解决了他的问题,但我会加上我的两分钱:

从错误消息(第一个错误行的结尾),我们可以得出结论,您在paths中包含deps(或main-test.js)文件.js延期。 在RequireJS中,您需要在没有扩展名的情况下调用文件名,因此paths(或deps)看起来或多或少会像这样:

paths: {
    'ui-bootstrap': 'libs/angular-bootstrap/ui-bootstrap-tpls' // <- without the extension
}