2012-07-24 46 views
1

我正在使用testNG編寫測試。每個測試方法共享一些存儲在類級別的公共屬性,但每個測試方法都需要自己的獨立驅動程序,因此驅動程序不能存儲爲類變量。這允許在同時運行時使用不同的驅動程序多次調用每個測試方法。在TestNG中的@BeforeMethod和@AfterMethod之間共享驅動程序

基本上就是我想要做的看起來像我的須藤代碼如下:

@BeforeMethod 
public void setup(Argument someArg) { 
    Driver driver = new Driver(argArg); 
} 

@Test 
public void test() { 
    driver.dostuff(); 
} 

@AfterMethod (alwaysrun = true) 
public void teardown() { 
    driver.quit(); 
} 

我的想法是,我可能會使用類名和測試方法保存在一個併發的地圖集合司機作爲存儲和檢索驅動程序的關鍵,但我希望找到一個更簡單,不太冗長的方法來做到這一點。

我很抱歉,如果有答案已經解決了這個問題。我搜索了高低,找不到我正在尋找的解決方案,或無法與特定的想法如何適用於我的問題聯繫起來。我的情況是特定於Selenium Webdriver,但我想有其他情況下可能想要做這樣的事情。

回答

1

如何使用ThreadLocal<Driver>

+0

這工作得很好。對於想要全面實現這一點的其他人,請參閱http://stackoverflow.com/questions/11520965/run-multiple-tests-in-one-class-in-parallel-in-multiple-instances-of-browsers -us/11636465#11636465 – 2012-07-24 20:01:04

相關問題