0
我想了解如何实现一个工厂来测试我定义的所有浏览器上的测试类。有一个更好的方法吗。任何人都可以提出基本的改进?关于定义一个测试在各种浏览器上运行单个浏览器测试的工厂
public class FactoryDataProviderTestBase extends MyTestBase
{
@Factory(dataProvider = "dp")
public FactoryDataProviderTestBase(SauceTestHelper helper,
Map<String,String> csvArgMap) {
super(helper, csvArgMap);
}
@DataProvider(name = "factory")
static public Object[][] factoryDataProvider() {
// do stuff here to initialize csvArgMap from csv file
return new Object[][] {
new Object[] { new SauceTestHelper(browser.FirefoxLatest), argMap },
new Object[] { new SauceTestHelper(browser.IE8), argMap },
new Object[] { new SauceTestHelper(browser.IE9), argMap },
new Object[] { new SauceTestHelper(browser.IE10), argMap },
new Object[] { new SauceTestHelper(browser.IE11), argMap },
new Object[] { new SauceTestHelper(browser.Safari7), argMap },
new Object[] { new SauceTestHelper(browser.Chrome), argMap }
};
}
}
在上面的代码,TestNG的应创建类FactoryDataProviderTestBase,一个的多个实例为每个定义的浏览器?
我不熟悉TestNG,但JUnit有一个参数化的runner选项,它允许您在运行测试之前设置参数。 TestNG可能有类似的东西。看看这个答案是否有助于你的案例http://stackoverflow.com/questions/26604745/parameterized-selenium-tests-in-parallel-with-testng。 – shri046 2014-11-03 16:10:32