Karma(又名Testacular)依赖于ng-app指令



在花了一天半的代码战斗之后,我意识到e2e测试挂起了,因为我手动引导而没有使用ng-app指令

第一,仅供参考。

第二,知道为什么吗?怎样才能解决这个问题?

感谢Lior

——编辑:这里有两个按键显示它,使用电话猫教程的例子:

在浏览器和e2e中都可以使用:http://plnkr.co/edit/AfLsug1LRi0euKf7TWJa

在浏览器中交互工作,在e2e运行器中不起作用:http://plnkr.co/edit/20OeZ5eV2ZbzgS1qDYfr

场景运行器似乎需要获取ng-app(用于$injector)。我改编了Vojta Jína在这里确定的修复,它对我有效。

$(function() {
   var myApp = $('#appId'); // Use whatever selector is appropriate here. 
   angular.bootstrap(myApp, [modules]); // modules is optional - see http://docs.angularjs.org/api/angular.bootstrap
   myApp.addClass('ng-app'); // Adds the required ng-app
});

此外,您可能需要在beforeAll中放入pausewait,以便有足够的时间完成手动引导,例如

beforeEach(function() {
   browser().navigateTo('../../index.html');
   pause();
});

这个修复工作,但它不是那么令人满意。有什么办法可以摆脱停顿/等待吗?

最新更新