将Angular从1.2.28升级到1.5.5时出现问题。代码本身像魅力一样运行,但我的测试开始失败,并显示以下消息。
未知提供商:storeProvider< - store< - translateStorage
我使用" a0-angular-storage":" 0.0.15"作为storeProvider提供' store'通过
angular.module(' angular-storage.store',[' angular-storage.internalStore']) .provider(' store',function(){...}
[EDIT:]删除了所有代码并引用了github repo,我可以在那里重现问题。 https://github.com/debrutal/js-hazzle
如果我运行测试(gulp测试),1.2.28 angular能够将测试存储(语言总是工作,因为它只是应用程序中的定义变量)到我的测试中。 1.5.5无法这样做。 在业力中,我在测试之前加载应用程序,我在应用程序之前加载了bower依赖项。
我缺少什么?为什么会这样?
答案 0 :(得分:0)
好的,我找到了原因。我的依赖关系组织得不是很好。换句话说,我在应用程序依赖项本身中拥有所有外部依赖,而不是在模块中,这确实需要它。
我的应用有依赖关系:
angular.module('app',['a0-angular-storage','vt.utils'])
和angular.module('vt.utils',[])
。
对'a0-angular-storage'的依赖应该是可传递的,因为只有vt.utils使用来自0-angular-storage的服务。模块'app'本身与该模块的任何服务没有直接依赖关系。
当我做beforeEach('vt.utils');
时,我只是加载我想要测试的模块,而不依赖于该模块,因此karma无法从该模块中找到服务,因为它未在测试中加载。
现在可能是: 我认为this可能是一个原因,为什么业力无法检索已加载的模块,如角度1.3,测试是在一个孤立环境中。
我花了很多时间,有人可以向我证实吗?或者是我错过了什么?