量角器在Angular 1上运行良好,但在将我的应用程序升级为混合Angular 1 + 2后,我收到此错误:
失败:等待量角器与页面同步时出错: “[ng:test]没有为getTestability找到元素参数的注入器 http://errors.angularjs.org/1.4.9/ng/test“
当您的Angular 1应用中没有ng-app标记<div ng-app=myAppManager">
并且可以在量角器配置文件中轻松修复rootElement : 'html'
时,这似乎是一个常见错误在混合应用程序上似乎没有任何改变。
我尝试了rootElement : 'html'
甚至useAllAngular2AppRoots: true
。
我怀疑问题来自异步加载混合角度(来自upgrade doc):
angular.bootstrap和。之间的一个显着区别 upgradeAdapter.bootstrap是后者异步工作的。这个 意味着我们不能假设应用程序已被实例化 在引导程序调用返回后立即执行。
我的配置文件:
exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['protractor.js'],
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 50000,
},
allScriptsTimeout: 50000,//seb
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'prefs': {
'profile.managed_default_content_settings.notifications':2
}
}
},
rootElement : 'html',
// useAllAngular2AppRoots: true,
jasmineNodeOpts: {
realtimeFailure: true
},
onPrepare: function() {
var failFast = require('jasmine-fail-fast');
jasmine.getEnv().addReporter(failFast.init());
}
}
答案 0 :(得分:0)
量角器团队已经解决了这个问题:
https://github.com/angular/angular/pull/7603
编辑:我还没有测试过
编辑2:似乎不起作用,我回到angularJs(版本1)