2015-10-14 44 views
-3

我正在進行數據驅動測試,目前我被困在@Test上。我想將數據傳遞給兩個不同的數據提供者,並且只想運行一次@test一次。我怎樣才能做到這一點。下面是相同的代碼說明了我的情況如何使@Test只運行一次

@DataProvider(name = "dp") 
    public Object[][] createData(Method m) { 
    System.out.println(m.getName()); // print test method name 
    return new Object[][] { new Object[] { "Cedric" }}; 
} 

@Test(dataProvider = "dp") 
public void test1(String s) { 
} 

@Test(dataProvider = "dp") 
public void test2(String s) { 
} 

在這裏,我想先運行@Test只運行once.Isthere任何方式,通過它,這是可能的嗎?

+0

應該只運行一次,無論如何,因爲你只提供一個變量「塞德里克」 - 如果不僅運行一次,它會做什麼? – drkthng

+0

上面提到的代碼僅用於演示,我的實際看起來在第一次測試中看起來類似,我想登錄到該網站,並在第二次測試中,我有所有其他測試操作。如果假設我有兩個測試,如上所述,我想要只需登錄一次,然後執行第二次測試中的操作。 – ddb

+2

你爲什麼不發佈確切的例子,你有你的問題? – drkthng

回答

0

根據你的意見,聽起來你想在你的測試中使用「dependsOnMethods」。

例如,如果你想test1的那麼每次你需要設置TEST2這樣TEST2之前運行:

@Test(dependsOnMethods = "test1", alwaysRun = true, dataProvider = "dp") 
public void test2(String s) { 
}