[英]Is there a default time-out for asynchronous tests running in protractor.js
我有一個角度的應用程序。 我已經為登錄頁面編寫了一些測試用例,以檢查正常的登錄方案。
describe('Login screen tests', function () {
var ptor = protractor.getInstance();
beforeEach(function(){
ptor.get('http://url:3000/login/#/');
});
it('Blank Username & Password test', function() {
ptor.findElement(protractor.By.id("submit")).click();
var message = ptor.findElement(protractor.By.repeater('message in messages'));
message.then(function(message){
expect(message.getText()).toContain('Username or Password can\'t be blank');
});
});
it ('Blank Password test', function(){
....
});
it ('Invalid username test', function(){
....
});
...... //Similarly more test cases folow for the login screen.
});
測試可以按預期正常運行。
問題:測試非常緩慢,大約需要1.5分鍾才能完成。 如果我通過java使用硒運行相同的測試。 僅需要2-3秒左右,這是理想的選擇。 我想使用量角器,因為該應用程序完全在角度之上。
我猜想,每次測試后可能會有300ms的默認超時時間。 這會使測試變慢。 因此,即使檢查完成,它也會等待超時。
是否有某種輪詢機制,以便在超時之前完成測試可以繼續進行。 我試過像在茉莉花中一樣使用done()
,但是done()
給出了一個錯誤,我詢問知道done()
內部是用protractor
修補的。
速度慢可能與量角器每次都等待與每個頁面同步有關。 您可以通過以下方式禁用該功能
ptor.ignoreSynchronization = true;
請記住,該選項旨在傳遞給臨時的非角度頁面。 但是,如果速度對您來說更重要,我想您可以做到這一點。
注意ptor
是舊語法,您應該升級並開始使用browser
,如下所示:
browser.ignoreSynchronization = true;
如果您開始遇到不穩定的測試,建議您在出現隨機問題的特定頁面上返回默認的false
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.