您的位置:首页 > 其它

JUnit学习笔记5---从Maven中运行测试

2013-04-16 11:21 357 查看
上篇的JUnit学习笔记还留下点尾巴,最后要怎样启动Ant没有讲,恩,在命令窗中,就一句话:ant 。

一旦你在项目上使用了Ant,你就会注意到几乎所有的(或者是占相当比例)项目都要使用同一个Ant的脚本,而且每个项目包含着几个子项目,每个子项目都需要去创建和维护Ant项目。这变得非常的无聊,使人感觉生产力低下,Maven则从Ant停下来的地方继续前进,这使得它对很多的团队都很适用。像Ant一样,Maven是一种运行其他工具的工具!如果Ant是一种源码构建的框架,那么Maven就是一种源码构建的环境。

安装Maven

三个步骤


http://maven.apache.org/builds/release/ 下载最新版本的Maven发布包,并解压缩到某个本地目录,比如Windows下C:/maven


定义一个MAVEN_HOME环境变量,指向Maven的安装目录


把MAVEN_HOME/bin添加到PATH环境变量下,这样就可以在任何的目录输入maven并执行了

现在确认是否已经为使用Maven做好了准备。第一次运行插件时请确保你的Internet链接是有效的,因为Maven会自动的从网站上下载第三方的插件Jar,一些重要的jar的作用,简单的列表:

jar——生成项目jar,并且部署到本地或是远端的jar repository
junit——执行junit测试
site——生成含有大量文档项目信息的项目文档web站点
changelog——生成变更日志报告(cvs变更日志、起始团队变更报告等)
checkstyle——对源码运行Checkstyle,并生成报告
clover——对源码运行clover生成报告
eclipse——从Maven中自动的生成Eclipse项目文件
ear——把应用文件作为ear文件打包
cactus——自动把你的代码打包,并部署在你选定的容器里,启动容器,运行Cactus测试
jboss——支持JBoss Server配置以及支持通过简单的拷贝或者JMX在JBoss上部署war,ear以及EJB-jar
……

为项目配置Maven

为了项目配置Maven只要写一个文件即可!当我们使用Ant的时候,我们只是在任务的层面描述构建,而用Maven,我们是用这个目录结构来描述项目结构。现在写一个简单的配置文件,测试用例就是JUnit笔记3中的目标源码,在上一篇的Ant中同样的用例!

xml version="1.0" encoding="ISO-8859-1"?>

<project>
<pomVersion>3pomVersion>      ;用来描述项目的POM的版本
<id>junitbook-samplingid>     ;定义项目ID
<name>JUnit in Action - Sampling JUnitname>  ;项目的名字,这个名字将会被各个插件使用,例如各种文档的标题!
<currentVersion>1.0currentVersion>           ;项目目前的版本
<organization>                                 ;开始描述项目的背景信息
<name>Manning Publications Co.name>
<url>http://www.manning.com/url>
<logo>http://www.manning.com/front/dance.giflogo>
organization>
<inceptionYear>2002inceptionYear>
<package>junitbook.samplingpackage>
<logo>/images/jia.jpglogo>

<description>
Chapter 3 presents a sophisticated test case to show how JUnit
works with larger components. The subject of our case study is
a component found in many applications: a controller. We
introduce the case-study code, identify what code to test, and
then show how to test it. Once we know that the code works as
expected, we create tests for exceptional conditions, to be
sure our code behaves well even when things go wrong.
description>
<shortDescription>
Chapter 3 of JUnit in Action: Sampling JUnit
shortDescription>

<url>http://sourceforge.net/projects/junitbook/url>    ;描述信息结束,上面的信息将用在site插件的站点描述中!

<developers>      ;描述开发人员在项目上的规则,信息用在site插件的项目报告中
<developer>
<name>Vincent Massolname>
<id>vmassolid>
<email>vmassol@users.sourceforge.netemail>
<organization>Pivolisorganization>
<roles>
<role>Java Developerrole>
roles>
developer>
<developer>
<name>Ted Hustedname>
<id>thustedid>
<email>thusted@users.sourceforge.netemail>
<organization>Husted dot Comorganization>
<roles>
<role>Java Developerrole>
roles>
developer>
developers>


;描述项目的客观属性,一个特定的属性指定一个特定的jar,但是一个属性可以是任何类型的。所有的属性都可以放在
log4j          ;classpath中,被不同的插件使用,不如Junit,这样就不会有外部依赖,这也是在代码中log4j属性被注释的原因,
log4j;我们使用本地和远端repository两种方式来处理以依赖关系。
1.2.8     ;


<build>
<sourceDirectory>src/javasourceDirectory>   ;描述运行时源码的位置
<unitTestSourceDirectory>src/testunitTestSourceDirectory>   ;这是测试源码的位置
<unitTest>                                            ;
<includes>                                          ;
<include>**/Test*.javainclude>                  ;定义你希望在测试中包含和希望排除的测试类。
includes>                                         ;请注意,这除了在第三章所创建的TestDefaultController?.java(?代表任何字符)
<excludes>                                          ;因为他们没有完成引导类,也不会被执行
<exclude>**/Test*All.javaexclude>               ;
<exclude>**/TestDefaultController?.javaexclude> ;
excludes>                                         ;
unitTest>                                           ;
build>                                                ;  这段代码被JUnit使用

project>


使用Maven进行JUnit测试

只要在命令行键入: maven junit

用maven处理要依赖的类

Maven也能解决其他的问题,比如:泛滥成灾的jar文件。

Maven用两种repository来处理项目的依赖库(也叫做工件):远端repository和本地repository。下图解释了流程:





看不到图的朋友点击这里

1.检查依赖库。maven解析project.xml中的依赖库。

2.检查依赖库是否存在本地的repository中,这个本地repository是在你第一次执行maven时自动创建的(它在home user目录下的.maven/repository里)。

3.下载依赖库。如果在本地repository中没有找到依赖库,Maven会从远端的Maven repository中下载,默认的远端是http://www.ibiblio.org/maven/ 可以通过更改project.properties或是build.properties文件中的maven.repo.remote的属性来覆盖默认设置。

4.存储想依赖库。一旦依赖库被下载就,Maven会把它存储在本地的repository中,这样下次就不会再下载了,本地和远端的repository结构是一样的。

本章余下的部分就是怎样在Eclipse中进行JUnit测试了,其实就是将Maven安装在Eclipse中,现在主流的IDE是Myeclipse,而高版本已经集成了Maven,就不需多说了,其实,这个过程就和导入工程文件一样。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: