使用量角器测试和自举AngularJS
我想用量角器测试我的角度应用。因为我使用了RequireJS,所以我不能在我的DOM中使用使用量角器测试和自举AngularJS,angularjs,requirejs,protractor,Angularjs,Requirejs,Protractor,我想用量角器测试我的角度应用。因为我使用了RequireJS,所以我不能在我的DOM中使用ng app指令,这就是为什么我使用Angular.bootstrap手动引导Angular 量角器打印错误输出,如下所示: 错误:在页面http://localhost:1428/:重试查找超出的角度 然后,我意识到量角器文档有一个警告: 量角器不适用于使用angular.bootstrap手动引导的应用程序。您必须使用ng app指令 那么,是否有任何解决方法可以使用手动引导的角度应用程序运行量角器测试
ng app
指令,这就是为什么我使用Angular.bootstrap
手动引导Angular
量角器打印错误输出,如下所示:
错误:在页面http://localhost:1428/
:重试查找超出的角度
然后,我意识到量角器文档有一个警告:
量角器不适用于使用angular.bootstrap手动引导的应用程序。您必须使用ng app指令
那么,是否有任何解决方法可以使用手动引导的角度应用程序运行量角器测试,或者我应该开始了解替代测试套件吗?转到量角器确认并添加此选项
onPrepare: function() {
// implicit and page load timeouts
browser.manage().timeouts().pageLoadTimeout(40000);
browser.manage().timeouts().implicitlyWait(25000);
// for non-angular page
browser.ignoreSynchronization = true;
// sign in before all tests
}
它对我有用
我的完整配置文件如下所示
// conf.js
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['../**/*.e2e.js'],
multiCapabilities: [{
browserName: 'firefox'
}],
onPrepare: function() {
// implicit and page load timeouts
browser.manage().timeouts().pageLoadTimeout(40000);
browser.manage().timeouts().implicitlyWait(25000);
// for non-angular page
browser.ignoreSynchronization = true;
// sign in before all tests
}
}
实际上,您要求量角器等待一段时间,忽略document.ready(),以便有时间手动引导。我们的量角器测试在RequireJS和手动引导的应用程序中运行良好。你能分享更多的代码吗?:)不是真的,当您引导angular async(我的情况是我从另一个应用程序作为依赖项RequireJS模块传递)时,这种解决方法也可以工作。这对我不起作用,它使测试间歇性工作,但其他时候项目未准备好,它们失败。(即我可以连续四次运行完全相同的测试,但有一次失败。)这可能与你的超时有关