2
我想將Cucumber-JVM添加到我一直在使用的TestNG和Selenium項目中,在那裏我通過一個網格重新使用瀏覽器測試套件是這樣的:在使用Selenium,TestNG和Cucumber-JVM時共享一個WebDriver實例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Grid" thread-count="2" parallel="tests">
<test name="Firefox 27.0">
<parameter name="browser" value="Firefox"/>
<parameter name="browser_version" value="27.0"/>
<packages>
<package name="[Test package name]"/>
</packages>
</test>
<test name="IE 11">
<parameter name="browser" value="IE"/>
<parameter name="browser_version" value="11.0"/>
<packages>
<package name="[Test package name]"/>
</packages>
</test>
</suite>
包中的每個測試類則接受參數的設置方法的基類,它看起來是這樣的:
@BeforeClass
@Parameters({"browser", "browser_version"})
public void setUp(String browser, String browser_version) throws MalformedURLException {
// Do the setup with WebDriver and assign to an object property
}
不過,我想有所有測試類之間共享的靜態或注入類,以避免重新初始化每次瀏覽器,這也應該讓我分享各種步驟定義文件之間的WebDriver實例。有誰知道如何做到這一點?
我可以用這個從TestNG的套件文件的變化配置選項傳遞? –
不確定。你可以將WebDriver包裝在自己的類中,它可以檢索TestNG配置。然後使用PicoContainer提供的構造函數注入將該類傳遞到您的測試中? –
您是否可以從testng.xml的參數標記中讀取瀏覽器和瀏覽器版本值,並在黃瓜的stepdefs中使用它? – Vikas