首先要在 pom.xml 去加入以下的 dependency:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.14.2</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>jboss-embedded-api</artifactId>
<version>beta3.SP12</version>
<type>jar</type>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.jboss.microcontainer</groupId>
<artifactId>jboss-deployers-client-spi</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.microcontainer</groupId>
<artifactId>jboss-deployers-core-spi</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>jboss-embedded-all</artifactId>
<version>beta3.SP12</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>thirdparty-all</artifactId>
<version>beta3.SP12</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.seam.embedded</groupId>
<artifactId>hibernate-all</artifactId>
<version>beta3.SP12</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>1.2_13</version>
<type>jar</type>
<scope>test</scope>
</dependency>
加入後就到在 Seam 的下載檔案內找出 bootstrap 這個資料夾,然將這個資料夾複製到 Maven Project 的 src/test/resource 下,這個資料夾是起動 Jboss Embedded 的設定檔案。
再到 pom.xml 加入以下的 plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useManifestOnlyJar>false</useManifestOnlyJar>
<forkMode>once</forkMode>
<argLine>-Dsun.lang.ClassLoader.allowArraySyntax=true</argLine>
<additionalClasspathElements>
<additionalClasspathElement>${basedir}/src/resource/bootstrap</additionalClasspathElement>
</additionalClasspathElements>
<suiteXmlFiles>
<suiteXmlFile>${project.build.testOutputDirectory}/testing.xml</suiteXmlFile>
</suiteXmlFiles>
<classpathDependencyExcludes>
<classpathDependencyExclude>javaee:javaee-api</classpathDependencyExclude>
<classpathDependencyExclude>javax.ejb:ejb-api</classpathDependencyExclude>
</classpathDependencyExcludes>
</configuration>
</plugin>
如果你的 pom.xml 有加入到 javaee-api 或 ejb-api 的 dependency,在測試時不要將這 2 個 JAR 加到 Classpath 中,Jboss Embedded 會不能起動的。
如果要連接 Database,可以在 src/test/resource/META-INF 加入一個 xxx-ds.xml 去設定 Data Source,Jboss Embedded 會自動加入此 Data Source。
Data Source 的大概是以下的樣子:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE datasources
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/ctlok</jndi-name>
<use-java-context>true</use-java-context>
<connection-url>jdbc:oracle:thin:@pro.ctlok.com:1521:ctlok</connection-url>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<user-name>ctlok</user-name>
<password>ctlok</password>
</local-tx-datasource>
</datasources>
在 persistence.xml 使用 java:jdbc/ctlok 的 JNDI 就可以找到 Data Source 了。
設定大致上完成了,可以寫一些 Test Class 去測試一下。
相關書籍: