Welcome 微信登录

首页 / 操作系统 / Linux / Arquillian 使用指南

本教程让你熟悉使用 JBoss Forge 的 Arquillian 插件。 阅读本教程后,你能够掌握:
  • 安装 Arquillian 插件到 Forge 环境中
  • 使用这个插件添加 Arquillian 基础设施到一个基于 Maven 的Java 项目中
  • 生成组件和相应的 Arquillian 测试
  • 无需手动修改在不同容器中运行 Arquillian 测试
你将完成很多与 快速入门教程 描述中相同的步骤, 不同是这里把一些琐碎的事留给 Forge 来处理。本教程定于快速阅读,就是让你能够更快的入门。

预备知识

本教程假定你已经安装好了 JBoss Forge . 安装 Forge 并不麻烦,请参考 “快速入门教程” 或者 官方的 Forge 文档 ,下载和安装。你的机器上还需要安装 JDK 1.6 或更高版本。

创建项目

在使用 Arquillian之前,我们要先创建一个项目。如果你还没创建,请使用下面的 Forge 命令来创建一个简单的 Java EE 6 项目,包含 JPA 支持。$ new-project --named arquillian-demo --topLevelPackage demo? Use [/Users/paul/arquillian-demo] as project directory? [Y/n]***SUCCESS*** Created project [arquillian-demo] in new working directory [/Users/paul/arquillian-demo]Wrote /Users/paul/arquillian-demoWrote /Users/paul/arquillian-demo/pom.xmlWrote /Users/paul/arquillian-demo/src/main/javaWrote /Users/paul/arquillian-demo/src/test/javaWrote /Users/paul/arquillian-demo/src/main/resourcesWrote /Users/paul/arquillian-demo/src/test/resourcesWrote /Users/paul/arquillian-demo/src/main/resources/META-INF/forge.xml新项目已经创建,下一步,我们需要添加一些代码用于测试。下面使用 Forge 来创建一个 CDI Bean。首先,我们使用 “beans” 插件来安装 CDI 到项目中。$ beans setup***SUCCESS*** Installed [forge.spec.cdi] successfully. ? Do you want to install CDI APIs? [y/N]Wrote /Users/paul/arquillian-demo/src/main/resources/META-INF/beans.xml然后创新建一个 Bean。$ beans new-bean --type demo.MySimpleBean --scoped DEPENDENTPicked up type <JavaResource>: demo.MySimpleBeanWrote /Users/paul/arquillian-demo/src/main/java/demo/MySimpleBean.java项目已经准备就绪,下面进行测试。

入门

设置 Arquillian 简单,你可能已经 快速入门教程 中读过。在 pom.xml 中配置一个新的 Arquillian 容器需要大量复制和粘贴工作。Forge 可以用一个命令来完成这些工作。首先你需要安装 Arquillian 插件。$ forge install-plugin arquillian现在我们需要设置好 Arquillian 和容器配置。这里使用 JBoss AS7。$ arquillian setup --container JBOSS_AS_7_MANAGEDForge 会提示你要使用的 JUnit, Arquillian 和 JBoss AS7 版本。选择使用最新版本。如果你还没下载 JBoss AS7,Forge 甚至也可以帮你自动完成。就这样,Arquillian 配置完毕。你可以自行查看一下 pom.xml 文件中生成的 dependenices 和 profile,Forge 还在 src/test/resources 创建了一个 arquillian.xml 文件。

编写测试

现在开始写一个测试。再次使用 Forge 帮你完成。$ arquillian create-test --class demo.MySimpleBean.javaPicked up type <JavaResource>: demo.MySimpleBeanTestWrote /Users/paul/arquillian-demo/src/test/java/demo/MySimpleBeanTest.java一个包含部署和测试方法的新测试类会添加到项目中。它使用 CDI 注入了要测试的类,这样能够立即验证测试是否能够在容器中运行。如果你的 IDE 不能找到 imports,请确认前面创建的 Maven profile 是否已经启用。你可以从 IDE,或者 Maven 命令行,或者 Forge 中直接运行测试。$ build --profile arq-jbossas-7-managed恭喜你! 你已经使用 Arquillian 和 Forge 得到第一个 (greenbar) 绿条 !下面尝试测试 JPA 代码。

测试 JPA

在开始写使用 Java Persistence API (JPA) 的测试之前,需要先配置 JPA。我们将会创建一个 Entity,然后写一个简单的 Data Access Object,这就是我们将要进行测试的类。$ persistence setup --provider HIBERNATE --container JBOSS_AS7***SUCCESS*** Installed [forge.spec.jpa] successfully.***INFO*** Setting transaction-type="JTA"***INFO*** Using example data source [java:jboss/datasources/ExampleDS]Warning:The encoding "UTF-8" is not supported by the Java runtime. ? The JPA provider [HIBERNATE], also supplies extended APIs. Install these as well? [y/N][false] Wrote /Users/paul/arquillian-demo/pom.xmlWrote /Users/paul/arquillian-demo/src/main/resources/META-INF/persistence.xml现在开始创建 Entity。$ entity --named Language --package demo.entitiesCreated @Entity [demo.entities.Language]Picked up type <JavaResource>: demo.entities.LanguageWrote /Users/paul/arquillian-demo/src/main/java/demo/entities/Language.java然后向这个 Entity 中添加一些属性。$ field string --named nameAdded field to demo.entities.Language: @Column private String name;Wrote /Users/paul/arquillian-demo/src/main/java/demo/entities/Language.java你必须复制下面这个文件到你的项目中。src/main/java/demo/dao/LanguageDao.javapackage demo.dao;import demo.entities.Language;import javax.annotation.PostConstruct;import javax.ejb.Singleton;import javax.ejb.Startup;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import java.util.List;@Singleton@Startuppublic class LanguageDao {@PersistenceContextEntityManager em;public List<Language> listLanguages() {return em.createQuery("select l from Language l").getResultList();}@PostConstructpublic void insertTestData() {Language java = new Language();java.setName("Java");em.persist(java);Language ruby = new Language();ruby.setName("Ruby");em.persist(ruby);Language groovy = new Language();groovy.setName("Groovy");em.persist(groovy);}}现在开始创建我们的测试类,如果你已经完成了教程的上半部分,这个命令也类似。$ arquillian create-test --class demo.dao.LanguageDao.java --enableJPAPicked up type <JavaResource>: demo.dao.LanguageDemoTestWrote /Users/paul/arquillian-demo/src/test/java/demo/dao/LanguageDemoTest.java这个命令会创建一个测试类,并添加 persistence.xml 到测试的部署中。在 IDE 中打开这个测试类,添加 Language 到部署中。现在添加一个测试断言:src/test/java/demo/dao/LanguageDaoTest.java@Testpublic void testListLanguages() {Assert.assertEquals(3, languagedao.listLanguages().size());}恭喜你! 另一个 Arquillian (greenbar) 绿条

添加其它容器

添加其它容器很简单,只需再次运行 setup 命令。例如,添加 Glassfish。$ arquillian setup --container GLASSFISH_3_1_REMOTE在容器之间切换只需要切换 Maven profile。例如在 Forge中:$ build test --profile glassfish-remote-3

导出部署包

为了调试,将测试导出到一个部署文件非常有用。Forge 可以帮你完成。首先转到一个 Arquillian 测试:$ cd src/test/java/demo/MySimpleBeanTest.java然后导出部署文件:$ arquillian export你可以在项目中 target 目录中找到这个部署文件。Arquillian 的详细介绍:请点这里
Arquillian 的下载地址:请点这里【Linux入门学习之】vi/vim编辑器必知必会Linux查询文件命令大全相关资讯      Arquillian 
  • Arquillian Cube Extension 1.0.0.  (02月28日)
  • Arquillian Container Jetty 1.0.0  (01月30日)
  • Arquillian Governor 1.0.2.Final   (01月17日)
  • Arquillian Drone Extension 2.0.0  (02月06日)
  • Arquillian Core 1.1.11.Final 发  (01月30日)
  • Arquillian Governor 1.0.1.Final   (12/14/2015 13:20:58)
本文评论 查看全部评论 (0)
表情: 姓名: 字数