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