eclipse下使用arquillian對seam項目進行單元測試

版本:html

eclipse: 4.2.0java

seam: 2.3.0.Finalapi

jboss-as: 7.1.0.Finaleclipse


當前ftc項目pom.xml中的dependency已經包含了arquiilian依賴,因此不用再從官網上覆制大片xml到本身的pom.xml中了。但要想在eclipse中執行單元測試還須要一點點改動:maven


咱們首先在cn.ftc.test包下寫一個測試類,代碼以下:單元測試

package cn.ftc.test;

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.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(Arquillian.class)
public class ExcelProcessorTest {
	@Deployment
	public static JavaArchive createDeployment() {
		return ShrinkWrap.create(JavaArchive.class)
				.addClass(ExcelProcessorTest.class)
				.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
	}

	@Test
	public void should_create_greeting() {
		System.out.println("hello");
	}
}


以managed方式運行測試

此方式下無需事先啓動jboss, arquillian會自動啓動JBoss,部署測試jar包,運行測試,最後關閉jboss。
1. 修改arquillian.xml爲如下內容:
    <container qualifier="jboss" default="true">
        <configuration>
            <property name="jbossHome">你的JBoss安裝目錄</property>
        </configuration>
    </container>

上述代碼的做用是告訴 arquillian JBoss的所在路徑,並用這個JBoss運行測試。

2. 在項目根目錄下的pom.xml中,找到 id 爲 arq-jbossas-7-managed 的profile節點, 在groupId爲org.jboss.as的節點中,添加一個version節點,內容爲7.1.1.Final。(7.1.0.Final也行)。
<profile>
			<id>arq-jbossas-7-managed</id>
			<activation>
				<property>
					<name>arquillian</name>
					<value>jbossas-managed-7</value>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.jboss.as</groupId>
					<artifactId>jboss-as-arquillian-container-managed</artifactId>
					<version>7.1.1.Final</version> <!-- 添加這一行 -->
					<scope>test</scope>
				</dependency>
			</dependencies>

3. 向eclipse導入工程。
File --> import ,選擇 existing maven projects. 如圖:


4. 選擇profile:
在pom.xml上點右鍵 --> maven --> select maven profiles。在彈出的對話框中構選 arq-jbossas-7-managed。如圖:



完成後,在ExcelProcessorTest類上點擊右鍵 --> Run As --> JUnit Test 便可運行測試。

以remote方式運行測試

咱們手動啓動JBoss,讓arquillian以咱們啓動的JBoss爲容器運行測試。

1. 相似於上面步驟2,打開pom.xml,找到 id 爲 arq-jbossas-7-remote 的 profile節點,在dependency中添加version節點,內容爲 7.1.1.Final.
<profile>
			<id>arq-jbossas-7-remote</id>
			<activation>
				<property>
					<name>arquillian</name>
					<value>jbossas-remote-7</value>
				</property>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.jboss.as</groupId>
					<artifactId>jboss-as-arquillian-container-remote</artifactId>
					<version>7.1.1.Final</version> <!-- 添加此行 -->
					<scope>test</scope>
				</dependency>
			</dependencies>

2. 重複前述步驟4,此次要選擇 arq-jbossas-7-remote.
 
此時咱們先從終端啓動JBoss,而後再在測試類上點右鍵 --> Run As --> JUnit Test 便可運行測試.
相關文章
相關標籤/搜索