2016-07-25 97 views
1

我試圖把描述性錯誤消息,並通過失敗()函數退出測試運行,但只有部分成功 - 看來我做錯了什麼...這裏是我的代碼:量角器 - 正確處理錯誤...

it('set up internal budget', function(done) { 
    var acceptBudgetButton = element(by.buttonText('Accept Budget')); 
    page.setInternalBudget(); //setting budget values 

    browser.wait(function() { 
     return browser.isElementPresent(acceptBudgetButton); 
    }, 30000, 'Error - Accept Budget button is not visible.'); 
    acceptBudgetButton.click(); 
    done(); 
    done.fail('Unable to setup internal budget. Terminating test run'); 
    }); 

當「接受預算」按鈕不可用我的預期,從這個劇本3兩件事:

1)請參閱「接受預算按鈕不可見」的錯誤,其次是等待時間out

2)請參閱「無法設置內部預算。終止te st run「error

3)當我們陷入失敗時,期望量角器立即存在測試運行。

在現實中,只有第一個期望得到滿足。腳本繼續運行,我甚至沒有「無法設置內部預算」錯誤...所以它看起來像我的done.fail語句被忽略。

我應該改變什麼讓我所有的夢想/期望成真?

回答

1

是的,done後沒有執行任何操作。我要做的是定義browser.wait()的成功和失敗處理程序。沿着這些線:

browser.wait(function() { 
    return browser.isElementPresent(acceptBudgetButton); 
}, 30000).then(
    function() { 
     acceptBudgetButton.click(); 
     done(); 
    }, 
    function() { 
     console.log('Error - Accept Budget button is not visible.'); 
     done.fail('Unable to setup internal budget. Terminating test run'); 
}); 
+0

非常好,謝謝你的迴應!我仍然遇到的唯一問題是腳本不會立即退出 - 它會從相同的規範中執行以下所有「its」,並打印出無意義的消息/錯誤......我想,不可能使量角器退出測試運行fail()函數。但在你的幫助下,我得到了99%的所需 - 我真的很感激它! – Misha

+0

@米沙啊,忘了說明這是默認行爲。請查看['jasmine-bail-fast'](https://github.com/goodeggs/jasmine-bail-fast)是否適合您。謝謝。 – alecxe

+0

再次感謝你,我會試試看。只需要注意,npm install jasmine-bail-fast引起了一些相當可疑的警告: - [email protected]多餘 npm WARN可選跳過失敗的可選依賴項/ chokidar/fsevents: npm WARN notsup不是與您的操作系統或體系結構兼容:[email protected] 注意 - 我在Windows 7上...希望這件事會起作用 - 我會讓你知道 – Misha