第10章 从Maven2中运行JUnit测试(第三部分 JUnit与构建过程)

第10章 从Maven2中运行JUnit测试

10.1 Maven的功能

Maven不只仅是一个构建工具,如下是Maven的一些核心原则。

10.1.1 约定优于配置
约定优于配置(Convention over configuration)是Maven项目最强大的原则之一。

10.1.2 强大的依赖管理
Maven经过中心仓库来存储、管理依赖,本地工程经过本地仓库与中心库下载各类依赖。
10.1.3 Maven的构建生命周期
Maven另外一条强大原则是 构建生命周期(build lifecycle)。

3个内置生命周期:
Default:用于生成项目的工做。
Clean:用于清理项目。
Site:用于生成项目的文档。

每一个生命周期都包含了几个阶段(phase),
在Default生命周期的全部阶段以下:
Validate:验证项目是正确的,而且全部必要的信息都是可得到的。
Compile:编译项目的源代码。
Test:使用一个合适的单元测试框架来测试编译好的源代码。这些测试应该不会要求代码被打包或部署。
Package:将编译好的代码打包成能够发布的格式,如JAR。
Integration test:若是有必要,将发布包处理和部署到一个能够运行集成测试的环境中。
Verify:运行任何检查来证明该发布包是有效的并符合质量标准的。
Install:将发布包安装到本地仓库中,以便用做其余本地项目中的一个依赖库。
Deploy:在一个集成或者发布环境,为了与其余的开发人员和项目进行共享,将最终版的发布包复制到远程仓库中。

若是调用以上的任何一个,他们都会从最开始的validate运行,依次运行,直到你调用的那个。好比,mvn test,会依次运行validate、compile、test。

10.1.4 基于插件的架构
Maven是一个基于插件的框架,它的功能都要插件去完成。(固然,核心的插件安装Maven时会一块儿安装)
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.cactus</groupId>
      <artifactId>cactus.integration.maven2</artifactId>
      <version>1.8.1-SNAPSHOT</version>
    </plugin>
  </plugins>
</build>

10.1.5 Maven项目对象模型
Maven配置文件pom.xml,取自于Project Object Model的简写。
简单的pom.xml

pom.xml是能够继承的,下面是一个父项目的配置( 注意packaging的类型),包含一个子模块example-module( 目录名,而不是artifactId):

下面是子模块的pom.xml,它继承了上面的pom.xml
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.manning.junitbook</groupId>
    <artifactId>example-pom</artifactId>
    <version>2.0-SNAPSHOT</version>
  </parent>
  <artifactId>example-child </artifactId>
</project>

pom能从父pom继承全部的元素:
包括依赖库、开发者和贡献者、插件列表、报告列表、ID匹配的插件执行、插件配置

10.2 创建一个Maven项目

安装Maven
一、下载,解压到一个目录下
二、定义环境变量M2_HOME,指向解压目录
三、将M2_HOME\bin 添加到 PATH 中

Maven配置文件settings.xml
settings.xml默认在M2_HOME\conf录入下,将它copy一个到的配置用户目录的.m2目录下,在个人本机是这里:“C:\Users\Neil\.m2”
而后打开它,在settings下加入,指定本地库的目录。
<localRepository>D:\maven_repo</localRepository>
固然也能够作其余设置,好比设置Nexus私服等,使得你本地全部的项目均可以使用这个私服。

用命令行创建Maven项目
用命令行进入咱们的工做目录,而后执行如下命令:
mvn archetype:create -DgroupId=com.manning.junitbook -DartifactId=maven-sampling -DarchetypeArtifactid=maven-artifact-mojo
这个命令会依赖maven-archetype-plugin插件,若是没有会自动下载,下载完成后自动执行命令,建立Maven示例项目。

固然这是经过命令行创建的,咱们须要把它导入Eclipse,才能在IDE里写代码,以下图:
固然这还有个前提,就是安装m2e

安装m2e插件,若是你用的是标准的JavaEE Eclipse(即已有WTP),请安装以下图版本:

在Eclipse里建立Maven项目
这个Step by Step 就行了 不废话了。

设置m2e
在Eclipse菜单选择Windows->Preferences->Maven

在Maven->Installations 默认使用Eclipse自带的maven,这里能够设置使用本身的maven。

在Maven->User Settings设置使用哪一个Maven配置文件和本地库路径

m2e功能介绍


pom.xml介绍
上面介绍了约定大于配置、Maven项目目录结构、各类安装配置,下面还剩一个pom.xml,介绍一下。
前面介绍了 Maven项目对象模型,而pom.xml就是描述了这个模型


书里提到的其余东西:
将项目eclipse话,主要是生成两个eclipse配置文件.project 和 .classpath
mvn eclipse:eclipse -DdownloadSources=true

生成项目的站点文档
mvn site

10.3 Maven插件的引入

mvn clean
使用maven-clean-plugin插件,将会清理以前对项目的各类操做,好比清理target目录。

10.3.1 Maven的Compiler插件
mvn compile
使用maven-compiler-plugin插件,编译代码。须要的配置以下:
        < build >
             < plugins >
                   < plugin >
                         < groupId > org.apache.maven.plugins </ groupId >
                         < artifactId > maven-compiler-plugin </ artifactId >
                         < version > 2.0 </ version >
                         < configuration >
                               < source > 1.5 </ source >
                               < target > 1.5 </ target >
                         </ configuration >
                   </ plugin >
              </ plugins >
       </ build >
在上面的附件pom.xml中好像没有这段,其实它是继承了父pom的配置,因此自身就不须要配置了,除非它改变了设置。

10.3.2 Maven的Surefire插件
mvn clean test
使用maven-surefire-plugin插件,来执行单元测试。若是你只想执行某些测试,能够经过配置统配的形式来设置:
< build >
             < plugins >
                   < plugin >
                         < artifactId > maven-surefire-plugin </ artifactId >
                         < version > 2.5 </ version >
                         < configuration >
                               < includes >
                                     < include > **/*Test*.java </ include >
                               </ includes >
                         </ configuration >
                   </ plugin >
             </ plugins >
       </ build >
同compile的配置同样,上面的pom.xml继承了父pom的设置。

10.3.3 使用Maven生成HTML格式的JUnit报告
mvn surefire-report:report
使用maven-surefire-report-plugin插件,能够生成测试报告,配置以下:
< build >
             < plugins>
                   < plugin >
                         < groupId > org.apache.maven.plugins </ groupId >
                         < artifactId > maven-surefire-report-plugin </ artifactId >
                         < version > 2.5 </ version >
                   </ plugin >
             </ plugins >
       </ build >

10.4 Maven的不足
Maven的不足也就是Ant的长处,Ant只是一个构建工具,你能够按任意的方式去作,而用Maven就必须按照Maven的约定去作,优势也是缺点吧。






附件列表

相关文章
相关标签/搜索