量角器:未检测到Angular应用程序

时间:2017-04-12 13:14:19

标签: angular typescript protractor

最近,我一直在使用Protractor进行Angular应用程序的e2e测试。

最近,e2e测试已停止工作,因为Protractor正在网站上搜索Angular,但找不到它。我已将其发布为issue,因为我的演示应用也遇到了问题。事实证明,演示应用程序已损坏,但这并不能解决我的问题。

执行ng e2e时的具体结果:

[15:00:22] E/protractor - Could not find Angular on page http://localhost:4200/ : angular never provided resumeBootstrap
  HomePage tests
    ✗ should have a title
      - Failed: Angular could not be found on the page http://localhost:4200/.If this is not an Angular application, you may need to turn off waiting for Angular.
        Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load

在不久之后发生了另一个错误:

- Failed: Error while waiting for Protractor to sync with the page: 
  "Cannot read property '$$testability' of undefined"

使用ng new blabla的新演示应用程序,我没有收到此错误。所以它必须与Protractor等待的请求有关,但永远不会得到解决。

所以我的问题是: - 有人也遇到过这个问题吗? - 如果是这样,是否有步骤检查量角器卡在哪里,所以我可以解决这个问题? - 或者这是Protractor的问题吗?

注意:使用browser.ignoreSynchronization = true时,Protractor不会与Angular同步并运行规范,但我想使用Protractor功能,因此这不是一个长期解决方案。

注意:应用程序使用的是Angular,而不是AngularJS

1 个答案:

答案 0 :(得分:1)

好的,我发现了两种可能的方法。

第一个解决方案是添加: ... , "typeRoots": [ "../node_modules/@types" ] 到您的tsconfig.e2e.json文件,它解决了问题。这不包括在@angular/cli生成的文件中。

另一个解决方案是将ng-app添加到index.html文件的body标签中,虽然我不喜欢这个解决方案,因为它看起来更像是一个hack(将AngularJS与Angular混合)比其他解决方案。