【发布时间】:2014-10-28 13:36:09
【问题描述】:
我正在测试 karma 中的 Angular 服务,它一开始可以工作,但一段时间后测试失败,我需要重新启动 karma。
我得到的错误信息是: 错误:[$injector:unpr] 未知提供者:Score2Provider
我使用以下 conf 运行 karma:
module.exports = function(config){
config.set({
basePath : './',
files : [
'bower_components/angular/angular.js',
'bower_components/lodash/dist/lodash.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-mocks/angular-mocks.js',
'tests/main-mock.js',
'client/js/score2.js',
'tests/*.js',
],
autoWatch : true,
frameworks: ['jasmine'],
browsers : ['Chrome'],
plugins : [
'karma-chrome-launcher',
'karma-jasmine',
],
});
};
我在 Windows 8.1 机器上运行它。
正如我所说,它起初可以工作,但几分钟后所有测试都失败并显示该错误消息。 有没有其他人遇到过这个问题,有人知道如何解决吗?
【问题讨论】:
-
Score2Provider 在“第二”时间不可用。您如何第二次运行测试?第一次运行和第二次运行有什么区别?
-
是的,我知道。由于我使用 autoWatch,因此每次更新文件时它都会再次运行。一段时间后它会中断,但如果我重新启动业力它会再次工作,所以我认为这不是我的代码中的错误。就像手表无法正确读取文件一样
-
我实际上是在建议您设置此方式的问题/您是否使用 Grunt/Gulp ?如果是,请从那里发布相关部分。如果不告诉我们你是如何调用测试的。
-
我目前没有使用任何构建工具。我只是运行
karma start,它会监视我的文件并在测试发生变化时重新运行。 -
我的猜测是因果关系之一在 Windows 8.1 上不起作用。例如Socket.io 在 Win 8 上存在一些问题。您的 Karma.conf 很好,但根据您的描述,您应该添加
singleRun: false。如果你对你正在做的任何事情持怀疑态度,只需在 win 8 以外的地方运行它来测试。
标签: angularjs karma-runner karma-jasmine