首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Arquillian - JBoss的测试凶器

2012-07-23 
Arquillian - JBoss的测试利器如何有效地进行集成测试一直是困扰Java程序员的问题,由于在开发中,有很多代

Arquillian - JBoss的测试利器
如何有效地进行集成测试一直是困扰Java程序员的问题,由于在开发中,有很多代码都是需要运行在各种容器当中的,因此有的时候我们不得不去手工管理这些容器的生命周期。针对这些问题,Java社区提出了很多解决方案:比如Maven提供Jetty插件用于执行集成测试,Spring也在JUnit测试中提供Spring Bean的容器支持。而Arquillian则是JBoss社区针对这一问题提供给我们的解决方案,让我们在基于JBoss AS的环境下开发时,可以很容易地撰写测试代码。

Arquillian的设计目标包括:控制JBoss AS的启动与关停;在JBoss AS7中部署测试代码;将测试代码打包成WAR,EAR,JAR等多种形式;支持CDI、Session Bean等各种J2EE的标准Bean;与JUnit的集成 --- 用一句话来概括,Arquillian让我们专注于撰写测试代码本身,而不需要关注其它的配置,部署,启动JBoss AS等工作。

接下来我们可以通过一个实际的例子来看下Arquillian的使用方法,因为Arquillian是JBoss社区为基于JBoss AS的开发环境量身定做的测试工具,因此本文中的例子将结合JBoss AS7的环境来讲解Arquillian,为此,我们首先要准备好JBoss AS7。

准备JBoss AS7

我们之所以要取出JBoss AS7的源代码,而不是下载已经编译好的版本,具体原因有两个:一是Arquillian需要用到JBoss AS7源代码中所包含的一个组件;二是我们稍后会引用到JBoss AS7中的一些代码进行说明。当然,我们至少可以借此机会熟悉一下JBoss AS7的编译过程。

首先取出JBoss AS7的源代码,AS7的源代码位于github上,要想签出代码,首先要确保你的机器上装了git,git安装不是本文重点,在此不展开讲述。下面是签出JBoss AS7源代码的git命令:



单元测试的代码需要讲解的就是这些,但是要想让测试顺利执行,Arquillian还需要一个配置文件,我们接下来仔细看下这个配置文件。

arquillian.xml

我们将这个文件按maven的项目目录结构要求,放在resources目录下面:



在这个配置文件中,我们指定了两个参数,分别是jbossHome及modulePath。我们要将这两个参数指向之前编译好的 JBoss AS7所在的目录,这样Arquillian才能找到JBoss AS并正确执行单元测试。

pom.xml

最后是项目的装配工作,在maven的配置文件pom.xml中,有下述几点配置值得说明:



我将重要的日志输出列在了上面,可以看到Arquillian将JBoss AS7启动了起来,将测试代码打包成test.jar并进行了部署,执行测试完成后,退出了JBoss AS7。

小结

我们通过一个简单的例子学习了Arquillian在JBoss AS7的使用方法,在实际使用中,Arquillian还可以帮助我们完成更多的测试任务,比如针对WEB项目将测试代码打包成WAR或者EAR。如果你想对Arquillian的使用有深入的学习了解,可以参考Arquillian的官方文档[2] 。

如果想看更多实际使用Arquillian进行JBoss AS下测试的实例,JBoss AS7自身的源代码无疑是最好的学习资料:在JBoss AS7的源代码目录中,有一个名为testsuite的目录,这里面有一个integration目录,里面有大量针对JBoss AS7各组件的集成测试,全部使用Arquillian进行测试代码的编写,是很好的学习资料。

样例代码

本文中所用到的样例代码,我放到了github上面,有兴趣的朋友可以自己下载玩玩看:


^^^ 已经部署过了,进depoly目录删掉重复的,或是用管理端undeploy。 2 楼 阿男bluedash 2011-12-03   @ninliu 问题可放至问答版块然后私信我,不要在blog下面贴大长Error Log 3 楼 qinjun998 2011-12-19   Tomcat下的测试可以吗? 4 楼 阿男bluedash 2011-12-26   qinjun998 写道Tomcat下的测试可以吗?
Tomcat也是arquillian支持的container的一种,https://github.com/arquillian/arquillian-container-tomcat

热点排行