2016-03-01 53 views
1

我正在使用量角器來自動化我的應用程序。如何處理量角器中的超時異常

我的測試結果後顯示0失敗得到超時錯誤

我的代碼

var EC = protractor.ExpectedConditions; 
     browser.wait(EC.presenceOf(element(by.id('xoxoxoxo'))), 5000).then(function() { 
     element(amkailogo).getAttribute('src').then(function (val) { 
     if (val.indexOf('Amkai-Company-Logo') > -1) { 
     /.../ 
     } 
     else { 
      /.../ 
     } 
     }); 
     }, function (err) { 
     console.log(err.stack); 
     }); 

我給了一些隨機的文字作爲定位xoxoxoxo,錯誤消息是

**********Error: Waiting for header displayName 
Wait timed out after 5000ms 

但我的測試結果是

Finished in 6.115 seconds 
1 test, 0 assertions, 0 failures 

如何使預期條件趕上超時錯誤讓我的控制檯應顯示1失敗而不是0失敗 enter image description here

+0

你是否在使用任何命令行記者? –

回答

0

您的測試不會失敗,因爲它沒有斷言/ expect

0

正如@Brine已經指出的那樣,您在測試中沒有聲明任何東西,您只是等待導致錯誤。換句話說,三件事情可能在試運行期間發生:

  • 測試通過
  • 測試失敗(期望失敗)
  • 錯誤(這是在這裏發生了什麼)

測試出錯 - 由browser.wait()引發的超時錯誤。當一個測試因錯誤而不是因爲期望失敗而不通過時,這是相當正常的情況。我們只是通常會提供一個有意義的錯誤消息以便調試:

browser.wait(EC.presenceOf(element(by.id('xoxoxoxo'))), 5000, "Element did not become present"); 
element(amkailogo).getAttribute('src').then(function (val) { 
    if (val.indexOf('Amkai-Company-Logo') > -1) { 
    /.../ 
    } 
    else { 
     /.../ 
    } 
}); 

而且我們實際上是強制使用eslint-plugin-protractor插件ESLint static code analysis tool有這個message provided爲項目中的每個browser.wait()