2012-07-24 39 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

相关问题