2017-07-25 78 views
3

我有一个奇怪的情况,如果在我的app.module.ts中包含Ionic的Push,我的E2E测试都不会运行。测试无法以超时错误开始。这看起来好像Push会阻止browser.waitForAngular()返回。Ionic2:包括离子推断E2E测试

例1 - E2E不起作用:

import {CloudModule, CloudSettings, Push} from "@ionic/cloud-angular"; 

@NgModule({ 
    providers: [ 
     // my other providers ... 
     { provide: MyPushService, useClass: MyPushService, deps: [Push] } 
    ] 

例2 - 添加模拟类,E2E做工作:

import {CloudModule, CloudSettings, Push} from "@ionic/cloud-angular"; 

@NgModule({ 
    providers: [ 
     // my other providers ... 
     { provide: Push, useClass: PushMock}, 
     { provide: MyPushService, useClass: MyPushService, deps: [Push] } 
    ] 

我一直在寻找通过push.js源希望找到一个setTimeout,setInterval或类似的东西,可能会让角度认为它正在等待某些东西,但我什么也看不见。

任何帮助,非常感谢。

+0

我们正面临完全相同的问题。您是否设法找到解决方案或解决方法? – Wilgert

回答

0

哈克解决方法:

{provide: Push, useClass: window['cordova'] ? Push : PushMock} 

这样的设备上运行时,它只会使用真正的推类。