不能将 Arquillian Graphene 与 Arquillian Drone 一起使用
Cannot use Arquillian Graphene with Arquillian Drone
我正在使用 Arquillian 1.1.6.Final
通过 Arquillian Drone 2.0.0.Alpha3
测试 JSF
。它很好用。但是,当我使用 Arquillian Graphene 2.1.0.Alpha1
进一步添加该功能时,出现了一个例外,如
java.lang.NullPointerException
at org.jboss.arquillian.graphene.enricher.WebElementEnricher.enrich(WebElementEnricher.java:68)
at org.jboss.arquillian.graphene.enricher.GrapheneEnricher.enrich(GrapheneEnricher.java:55)
at org.jboss.arquillian.test.impl.TestInstanceEnricher.enrich(TestInstanceEnricher.java:52)
即使我将 Arquillian Graphene
还原为版本 2.0.3.Final
,异常仍然抛出。这是我的 pom.xml
<properties>
<my.arquillian.drone.version>2.0.0.Alpha3</my.arquillian.drone.version>
<my.arquillian.version>1.1.6.Final</my.arquillian.version>
<!--my.arquillian.graphene.version>2.1.0.Alpha1</my.arquillian.graphene.version-->
<my.arquillian.graphene.version>2.0.3.Final</my.arquillian.graphene.version>
<my.arquillian.recorder.version>1.0.0.Beta1</my.arquillian.recorder.version>
<my.arquillian.selenium.version>2.44.0</my.arquillian.selenium.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${my.arquillian.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.selenium</groupId>
<artifactId>selenium-bom</artifactId>
<version>${my.arquillian.selenium.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-bom</artifactId>
<version>${my.arquillian.drone.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-webdriver-depchain</artifactId>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.graphene</groupId>
<artifactId>graphene-webdriver</artifactId>
<version>${my.arquillian.graphene.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<scope>${my.project.dependency.test.scope}</scope>
<exclusions>
<exclusion>
<artifactId>servlet-api-2.5</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
我的单元测试是
@RunWith(Arquillian.class)
public class DroneTest {
@Drone
private WebDriver browser;
@Test
@RunAsClient
public void ensureIndexPage() {
try{
browser.get("http://www.google.com")
} catch (Exception e){
e.printStackTrace(); //<---- Exception in thrown here
}
}
}
如上所述,单元测试在没有 Arquillian Graphene
的情况下工作正常。能否请您帮忙进一步指教?
我正在寻找另一个 Arquillian Suite Extension
而不是能够与 Arquillian 1.1.6.Final
、Arquillian Drone 2.0.0.Alpha3
和 Arquillian Graphene 2.1.0.Alpha1
一起使用的 rhq-arquillian-suite-extension
。我发现 ingwarsw/arquillian-suite-extension 它对所有人都很有效。
无论如何存在一些限制,这是一个已知问题,它不能与 Arquillian Warp
一起使用,因为 issue-16。
如果我们想在没有 Arquillian Warp
的情况下实现 code coverage
,Jacoco
可能会有所帮助,如 JBoss Developer Forum: How to generate Code Coverage reports from Drone tests 中所述。
我正在使用 Arquillian 1.1.6.Final
通过 Arquillian Drone 2.0.0.Alpha3
测试 JSF
。它很好用。但是,当我使用 Arquillian Graphene 2.1.0.Alpha1
进一步添加该功能时,出现了一个例外,如
java.lang.NullPointerException
at org.jboss.arquillian.graphene.enricher.WebElementEnricher.enrich(WebElementEnricher.java:68)
at org.jboss.arquillian.graphene.enricher.GrapheneEnricher.enrich(GrapheneEnricher.java:55)
at org.jboss.arquillian.test.impl.TestInstanceEnricher.enrich(TestInstanceEnricher.java:52)
即使我将 Arquillian Graphene
还原为版本 2.0.3.Final
,异常仍然抛出。这是我的 pom.xml
<properties>
<my.arquillian.drone.version>2.0.0.Alpha3</my.arquillian.drone.version>
<my.arquillian.version>1.1.6.Final</my.arquillian.version>
<!--my.arquillian.graphene.version>2.1.0.Alpha1</my.arquillian.graphene.version-->
<my.arquillian.graphene.version>2.0.3.Final</my.arquillian.graphene.version>
<my.arquillian.recorder.version>1.0.0.Beta1</my.arquillian.recorder.version>
<my.arquillian.selenium.version>2.44.0</my.arquillian.selenium.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${my.arquillian.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.selenium</groupId>
<artifactId>selenium-bom</artifactId>
<version>${my.arquillian.selenium.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-bom</artifactId>
<version>${my.arquillian.drone.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-drone-webdriver-depchain</artifactId>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.graphene</groupId>
<artifactId>graphene-webdriver</artifactId>
<version>${my.arquillian.graphene.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<scope>${my.project.dependency.test.scope}</scope>
<exclusions>
<exclusion>
<artifactId>servlet-api-2.5</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
我的单元测试是
@RunWith(Arquillian.class)
public class DroneTest {
@Drone
private WebDriver browser;
@Test
@RunAsClient
public void ensureIndexPage() {
try{
browser.get("http://www.google.com")
} catch (Exception e){
e.printStackTrace(); //<---- Exception in thrown here
}
}
}
如上所述,单元测试在没有 Arquillian Graphene
的情况下工作正常。能否请您帮忙进一步指教?
我正在寻找另一个 Arquillian Suite Extension
而不是能够与 Arquillian 1.1.6.Final
、Arquillian Drone 2.0.0.Alpha3
和 Arquillian Graphene 2.1.0.Alpha1
一起使用的 rhq-arquillian-suite-extension
。我发现 ingwarsw/arquillian-suite-extension 它对所有人都很有效。
无论如何存在一些限制,这是一个已知问题,它不能与 Arquillian Warp
一起使用,因为 issue-16。
如果我们想在没有 Arquillian Warp
的情况下实现 code coverage
,Jacoco
可能会有所帮助,如 JBoss Developer Forum: How to generate Code Coverage reports from Drone tests 中所述。