我在同一项目中使用嵌入式Glassfish(3.1.2)使用Arquillian(最终版本1.1.2)创建了JPA测试,并使用EJBContainer创建了测试。
我可以在Eclipse(Kepler)中一个接一个地运行测试(当我在后台运行Derby时),但是当我尝试使用Maven运行测试时
'mvn clean test'
我得到错误:
Could not setup GlassFish Embedded Bootstrap
从surefire日志中,我找到以下行:
Caused by: org.glassfish.embeddable.GlassFishException: Already bootstrapped
现在,如果我注释掉设置EJBContainer的测试,则可以使用maven运行Arquillian测试。
问题是,如何使两个测试类彼此“独立”运行,以使Arquillian不会因为使用EJBContainer创建的嵌入式容器而崩溃?
我已经尝试在创建它的测试类中的@AfterClass方法中关闭EJBContainer。
最佳答案
您是否尝试过在maven-surefire-plugin配置中创建单独的执行?一种使用EJBContainer执行的测试类执行,另一种使用Glassfish的执行。
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/ejbcontainer/*TestCase*</include>
</includes>
</configuration>
<executions>
<execution>
<id>glassfish</id>
<goals>
<goal>test</goal>
</goals>
<phase>test</phase>
<configuration>
<includes>
<include>**/glassfish/*TestCase*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>