ここで説明されている Capabilities インターフェイスを使用して、Arquillian の Drone 拡張機能を使用して、いくつかの機能テスト用に WebDriver を構成したいと考えています。アーティファクト arquillian-bom (バージョン 1.0.2.Final)、arquillian-drone-bom (バージョン 1.1.0.CR2)、arquillian-drone-webdriver-depchain、arquillian-drone-webdriver を pom の依存関係として追加しました。以下に示すように xml を作成し、示されているように機能を宣言しましたが、テストを実行すると、次の例外がスローされます。
java.lang.NullPointerException
at org.openqa.selenium.remote.DesiredCapabilities.<init>(DesiredCapabilities.java:51)
at org.jboss.arquillian.drone.webdriver.configuration.TypedWebDriverConfiguration$5.invoke(TypedWebDriverConfiguration.java:268)
at org.jboss.arquillian.drone.webdriver.configuration.TypedWebDriverConfiguration$5.invoke(TypedWebDriverConfiguration.java:259)
at org.jboss.arquillian.drone.webdriver.configuration.TypedWebDriverConfiguration$CallInterceptor.intercept(TypedWebDriverConfiguration.java:65)
at org.jboss.arquillian.drone.webdriver.configuration.TypedWebDriverConfiguration.getCapabilities(TypedWebDriverConfiguration.java:274)
at org.jboss.arquillian.drone.webdriver.factory.FirefoxDriverFactory.createInstance(FirefoxDriverFactory.java:79)
at org.jboss.arquillian.drone.webdriver.factory.FirefoxDriverFactory.createInstance(FirefoxDriverFactory.java:42)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:129)
at org.jboss.arquillian.drone.webdriver.factory.WebDriverFactory.createInstance(WebDriverFactory.java:43)
at org.jboss.arquillian.drone.impl.DroneCreator.createWebTestBrowser(DroneCreator.java:71)
etc.
コードを見ると、この NPE は、初期化されていない TypedWebDriverConfiguration のクラス変数、capabilityMap によって引き起こされていることがわかります。
これを機能させるには、構成で何を修正する必要がありますか?
pom.xml 抽出:
<project>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${arquillian.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-bom</artifactId>
<version>${drone.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-webdriver</artifactId>
<version>${drone.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-webdriver-depchain</artifactId>
<version>${drone.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>
arquillian.xml:
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<extension qualifier="webdriver">
<property name="browserCapabilities">firefox</property>
<property name="capabilityWebdriverFirefoxBin">/usr/bin/firefox</property>
</extension>
</arquillian>
コードでの WebDriver 宣言:
@RunWith(Arquillian.class)
public class WebDriverTest {
@Deployment
public static WebArchive createDeployment() {
...
}
@Drone
WebDriver driver;
}