2014-10-03 78 views
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,一個的多個實例爲每個定義的瀏覽器?

+0

我不熟悉TestNG,但JUnit有一個參數化的runner選項,它允許您在運行測試之前設置參數。 TestNG可能有類似的東西。看看這個答案是否有助於你的案例http://stackoverflow.com/questions/26604745/parameterized-selenium-tests-in-parallel-with-testng。 – shri046 2014-11-03 16:10:32

回答

-1

您應該爲此使用Selenium's Grid。可以找到設置和配置信息here

+0

我確實使用Selenium Grid作爲Sauce Labs網格的形式。另外,我的問題不是關於Selenium Grid配置。 – djangofan 2014-10-03 20:05:15