2012-02-21 123 views
1

這是一般的JUnit問題,但它涉及Selenium WebDriver的瀏覽器自動化。如何獲得JUnit(WebDriver)測試重新運行多次?

我有一個運行一個JUnit測試類的JUnit4 TestSuite。我的JUnit測試類有10個測試方法,可以填寫一個網頁。在這個JUnit測試類中,我有一個包含測試數據的List對象。我現在可以通過訪問列表對象驅動單元測試,像這樣:

// all data for my tests can be grabbed using the get(0) method 
testListObject.getPersonEntity.get(0).getName(); 

我對StackOverflow的用戶的問題是:

如何修改我的JUnit測試,這樣它會通過我的對象的多個測試運行清單?

換句話說:

  1. 是否有可能創建通過列表循環,並以某種方式得到所有的測試方法在迴路每次斷火的方法?這有意義嗎?然後,單元測試在每次填充頁面時都不會完成,而是僅在它爲列表中的每個測試用例填充頁面之後才完成。

  2. 或者,我應該將測試列表移出TestSuite對象,並以某種方式多次調用Unit測試類?如果是這樣,怎麼樣?

我不確定如何做到這一點,而不是非常熟悉JUnit的工作方式。換句話說,不知道「測試」方法如何被解僱的基礎,我目前不知道讓JUnit測試多次運行的正確方法。另一種方法要問:如何讓TestSuite類多次調用單元測試類,每次都有一個驅動測試的不同testentity參數(來自List)?

回答

2

請參閱JUnit中的ParameterizedParameters。我認爲他們提供你所需要的。有關更多幫助,請參閱this past SO link.您只需要使用@RunWith(Parameterized.class),提供一個註釋爲Parameterized.Parameters的方法,該方法返回每次運行(在List,數組或某個集合中)所需的數據,最奇怪的是爲測試類,它接受可迭代數據的輸入類型。

+0

謝謝。是的,它看起來像構造函數,也是獲取參數列表的方法都被反射調用,而不是不應該直接調用。起初令人困惑。 – djangofan 2012-02-21 20:43:49