下载安装Forge
创建项目并添加Arquillian支持
forge
启动forge大概需要5s,不知道这么久的时间forge在做什么。。启动成功后应该输出如下提示:
new-project --named arquillian-demo --topLevelPackage org.arquillian.example
用forge的beans插件安装CDI支持:
beans setup
创建一个Bean:
beans new-bean --type org.arquillian.example.MySimpleBean --scoped DEPENDENT
回到工程根目录:
cd ~~
为forge安装arquillian插件:
forge install-plugin arquillian
注意,不要通过Arquillian官网的Guide给出的链接下载forge,那个是1.0版,而arquillian插件最低要求为1.3。
arquillian setup --containerType MANAGED --containerName JBOSS_AS_MANAGED_7.X
Tip: 输入
arquillian setup --containerType MANAGED --containerName [TAB]
能自动列出arquillian支持的所有容器列表。
<container default="true" qualifier="JBOSS_AS_MANAGED_7.X">
<configuration>
<property name="jbossHome">JBOSS安装目录</property>
</configuration>
</container>
生成测试Bean
arquillian create-test --class org.arquillian.example.MySimpleBean.java
这会生成MySimpleBeanTest.java文件:
package org.arquillian.example;
import org.arquillian.example.MySimpleBean;
import javax.inject.Inject;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
import static org.hamcrest.core.Is.*;
@RunWith(Arquillian.class)
public class MySimpleBeanTest {
@Inject private MySimpleBean mysimplebean;
@Deployment public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(MySimpleBean.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
public void testIsDeployed() {
Assert.assertNotNull(mysimplebean);
}
}
在JBoss中运行测试
build test --profile arq-jboss_as_managed_7.x
此时forge会启动Jboss,部署由ShrinkWrap生成的jar包,并运行测试。
<dependencies>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-arquillian-container-managed</artifactId>
<version>7.1.0.Final</version>
</dependency>
</dependencies>
我这里之前居然是7.1.1,导致出现各种奇妙的错误,浪费了不少时间。如果你想先手动启动JBoss,然后让arquillian在远程容器中运行测试的话,那么就要修改arquillian.xml,将allowConnectingToRunningServer设为true:
<container default="true" qualifier="JBOSS_AS_MANAGED_7.X">
<configuration>
<property name="jbossHome">/home/whf/app/jboss-as-7.1.1.Final</property>
<property name="allowConnectingToRunningServer">true</property>
</configuration>
</container>
4127



被折叠的 条评论
为什么被折叠?



