JBoss AS7的单元测试是不错的学习资料。其中有一套集成测试,位于源代码中的下面这个目录:
testsuite/integration
这套单元测试包含ejb,jpa,jax-rs,mdb等各种组件的使用方法。如果想运行这套测试代码,可以先编译好JBoss AS7[1],然后执行maven命令:
jboss-as/testsuite/integration% mvn test
也可以执行:
jboss-as/testsuite/integration% mvn eclipse:eclipse
生成eclipse项目,更方便地查看源代码。
此外,在执行test的过程中,系统是没有任何输出的,可以修改:
jboss-as/testsuite/integration/src/test/resources/arquillian.xml
这个配置文件中的outputToConsole属性将测试执行的详细日志进行输出。下面是我修改的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<container qualifier="jboss" default="true">
<configuration>
<!--<property name="jbossHome">target/jbossas</property>-->
<property name="jbossHome">/Users/liweinan/jboss-as-7.1.0.Alpha1-SNAPSHOT</property>
<property name="allowConnectingToRunningServer">true</property>
<property name="outputToConsole">true</property>
<property name="serverConfig">standalone.xml</property>
</configuration>
</container>
</arquillian>
JBoss AS7的集成测试案例使用JBoss Arquillian框架来进行JBoss AS7的启动,关停以及测试案例的部署工作。有关JBoss Arquillian的详细内容可参考文档[2]。
[1] "有关JBoss AS7的源代码编译":http://bluedash.net/diaries/9
[2] "Arquillian - JBoss的测试利器":http://t.cn/aeZmKs
*P.S.* 这套集成测试代码有很多单元测试未启用,如果想把默认未包含的测试也跑起来,可以修改pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>**/*TestCase.java</include>
</includes>
</configuration>
</plugin>
如上所示,加一行:
<include>**/*TestCase.java</include>
需要注意的是,目前有的单元测试是通不过的。