2017-07-25 69 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} 

這樣的設備上運行時,它只會使用真正的推類。