2016-06-13 13 views
1

我多久需要爲我的功能測試設置setFindTimeout?如何在intern.js中使用setFindTimeout

當我執行setFindTimeout時,有時我需要將它放在其他測試用例中以更改find​​By *方法超時。

-----------------編輯------------------------

如果我在不同的文件上有多個套件,會發生什麼。 例如,我有start.js和admin.js 這是您的答案仍然適用於這種情況?

start.js

'use strict'; 
define([ 
    'intern!object', 
    'intern/chai!assert', 
    'intern/dojo/node!fs' 
], (registerSuite, assert, fs) => { 
    registerSuite(() => { 
    let testData; 
    let timeout; 
    let testCases; 
    testCases = { 
     name: 'Project Feature Test', 

     'Log into project': function() { 

     this.timeout = 60000 * 5; 

     return this.remote 

      .get(testData['site']) 
      .findByXpath('//a[@href="/saml-redirect"]').click().end() 
      .findById('userName').type(testData['username']).end() 
      .findById('password').type(testData['password']).end() 
      .findById('loginButton').click().end(); 
     }, 
    }; 

    return testCases; 
    }); 
}); 

admin.js

'use strict'; 

define([ 
    'intern!object', 
    'intern/chai!assert', 
    'intern/dojo/node!fs' 
], (
    registerSuite, 
    assert, 
    fs 
) => { 
    registerSuite(() => { 

    testCases = { 
     name: 'Test Administration Page', 

     'Check User Functions': function() { 
     this.timeout = timeout * 3; 
     return this.remote 
      .sleep(3000) 
      .findByClassName('admin-button').click().end() //goto admin page 
     } 
    }; 
    return testCases; 
    }); 
}); 
+0

請在問題中添加更多上下文。可能是一些代碼。問題似乎並不十分清楚。 – RBT

回答

0

setFindTimeout設置findBy超時測試會話。一旦設置完畢,新的超時值將在該會話中的所有剩餘測試中保持不變,或者直到通過另一個呼叫更改爲setFindTimeout

+0

hi @ jason0x43 我已更新我的問題。 – Sani

+0

查找超時是相對於會話而不是單個測試套件。如果它被設置在一個套件中,它將通過所有其他套件持續該會話,直到測試結束。不過,您似乎並未在代碼中的任何位置調用setFindTimeout。 – jason0x43

0

在我看來,如果你無法控制哪個文件會先運行,哪個會運行,那麼最好在兩個文件中設置。 我經常在頂級父母套房的before中設置一次