资源描述
Eclipse+Maven测试环境配置
日期
版本号
修订说明
修订人
2013-8-22
V1.0
创建
谢伟丹
1. 说明 2
2. 目的 2
3. maven配置(修改pom.xml文件) 2
3.1 引入junit框架 2
3.2配置jetty需要的jdbc驱动程序 2
3.3配置jndi环境支持 3
3.4 代码、资源目录设置 4
3.5Jetty插件配置 4
3.6配置测试插件 5
4. 在eclipse中进行单元测试、集成测试 6
4.1运行单个单元测试 6
4.2运行所有单元测试 7
4.3同时运行所有单元测试和集成测试 8
4.4在执行集成测试时调试代码 10
1. 说明
本文档以项目【P1209资产管理系统】代码为基础进行讲解;
2. 目的
描述如何在基于eclipse和maven构建的环境中进行单元测试和集成测试;
3. maven配置(修改pom.xml文件)
3.1 引入junit框架
引入该框架后,才能编写基于junit的单元测试代码:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- 用于断言 -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
</dependency>
3.2配置jetty需要的jdbc驱动程序
具体需要的驱动程序见\WEB-INF\目录下的jetty-env.xml文件,如果项目已提供该驱动程序,则跳过此配置:
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.2.6</version>
<scope>provided</scope>
</dependency>
3.3配置jndi环境支持
在不启动任何容器的情况下,在测试中可以使用jndi环境,主要用于提供数据库连接,因为不用启动容器,所以可以节省很多时间:
<dependency>
<groupId>simple-jndi</groupId>
<artifactId>simple-jndi</artifactId>
<version>0.11.4.1</version>
<scope>test</scope>
</dependency>
在pom.xml文件中添加上面的配置后,还需要在测试代码目录根目录中新增一个文件,文件名为:jndi.properties,内容为:
java.naming.factory.initial=org.osjava.sj.SimpleContextFactory
org.osjava.sj.root=testsrc/resources/simple-jndi
org.osjava.sj.colon.replace=--
org.osjava.sj.delimiter=/
不同的项目可能需要修改红色粗体部分的内容,如在资产项目中,testsrc/resources为测试代码目录的资源目录,在testsrc/resources/simple-jndi这个目录中,创建下图目录及文件:
default.properties的内容如下图所示,即项目需要用到的数据库连接配置:
3.4 代码、资源目录设置
像资产系统的代码目录并不是标准的maven目录,所以需要指定代码目录,如下图:
注:主代码和测试代码的编译输出目录设置为一样的,否则当主代码和测试代码中都有pojo包的时候,会有问题;
设置主代码和测试代码资源目录:
3.5Jetty插件配置
添加<executions>标签内容,主要用于集成测试的配置:
3.6配置测试插件
主要对单元测试阶段和集成测试阶段进行配置,指定单元测试阶段自动执行哪些测试文件,集成测试阶段执行哪些测试文件,因为集成测试一般需要依赖容器(tomcat或jetty),而单元测试一般不需要容器(执行效率很快),固要分开执行,可通过文件命名规范区分,如 *Test.java表示单元测试文件, *IT.java表示集成测试文件,详见下图:
以上就是在maven中配置自动化测试最基础的信息,基本所有的项目的pom.xml都需要做以上配置,才能让maven支持自动化测试;
4. 在eclipse中进行单元测试、集成测试
4.1运行单个单元测试
在用junit框架编写的代码文件中,点击右键--Run As--JUnit Test即可:
测试结果可以在JUnit标签页中查看:
右边目录树是所有执行的测试用例,右上角的表示全部测试通过,如果不是绿色,则表示有的测试没通过,或代码有异常;
4.2运行所有单元测试
在项目名称上面点击右键--Run As--Maven Test
在控制台输出界面上可以看到测试的汇总信息:
注:上面所说的“所有单元测试”,指的是在pom.xml设置的单元测试,即测试代码目录下所有 *Test.java 文件;
4.3同时运行所有单元测试和集成测试
右键项目名称--Run As--Run Configurations:
在弹出的对话框中,按下图步骤操作:
点击【Run】按钮后,eclipse开始进行编译--执行单元测试--打包--启动jetty--执行集成测试,所花的时间会比较多,如果项目比较大的话,打包和启动jetty很占很多时间,执行完成后,控制台输出了集成测试的相关结果:
4.4在执行集成测试时调试代码
要在集成测试时进行调试,需要在Goals目标中指定参数,见下图,在原integration-test前面加上-Dmaven.surefire.debug(空格)即可,点击“Run”按钮:
控制台输出会出现下面链接,点击该链接:
后面在设有断点的地方,控制台会出现下图:
点击:
点击按钮:
选择,点击按钮:
选择主代码目录和测试代码目录,如图的、,点击按钮:
点击按钮,就可以正常进行调试了。
展开阅读全文