第10章 从Maven2中运行JUnit测试(第三部分 JUnit与构建过程)
2014-12-11 00:00
155 查看
第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时会一起安装)
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
1、下载,解压到一个目录下
2、定义环境变量M2_HOME,指向解压目录
3、将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插件,编译代码。需要的配置如下:
在上面的附件pom.xml中好像没有这段,其实它是继承了父pom的配置,所以自身就不需要配置了,除非它改变了设置。
10.3.2 Maven的Surefire插件
mvn clean test
使用maven-surefire-plugin插件,来执行单元测试。如果你只想执行某些测试,可以通过配置统配的形式来设置:
同compile的配置一样,上面的pom.xml继承了父pom的设置。
10.3.3 使用Maven生成HTML格式的JUnit报告
mvn surefire-report:report
使用maven-surefire-report-plugin插件,可以生成测试报告,配置如下:
10.4 Maven的不足
Maven的不足也就是Ant的长处,Ant只是一个构建工具,你可以按任意的方式去做,而用Maven就必须按照Maven的约定去做,优点也是缺点吧。
来自为知笔记(Wiz)
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> |
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
1、下载,解压到一个目录下
2、定义环境变量M2_HOME,指向解压目录
3、将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 > |
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 > |
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 > |
Maven的不足也就是Ant的长处,Ant只是一个构建工具,你可以按任意的方式去做,而用Maven就必须按照Maven的约定去做,优点也是缺点吧。
来自为知笔记(Wiz)
附件列表
相关文章推荐
- jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告
- MAVEN 构建WEB项目全过程解析(增加了部分截图)
- Maven构建时跳过部分测试
- 记录一下selenium+maven+svn+jenkins+junit构建无人值守的自动化测试环境
- Maven项目Junit测试类运行报错
- jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告[留存]
- Maven中运行Junit测试Log4j的配置
- junit源码学习--运行测试的过程
- JUnit学习笔记5---从Maven中运行测试
- jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告
- Maven运行JUnit测试之mvn test的默认行为
- [置顶] maven项目junit测试运行时提示java.lang.NoClassDefFoundError: xx
- Maven构建时跳过部分测试的实例
- Maven构建mybatis的Junit测试
- Maven-webapp构建注解导入bean的测试程序过程中遇到的问题
- selenium+maven+svn+jenkins+junit构建无人值守的自动化测试环境
- JUnit学习笔记5---从Maven中运行测试
- Maven运行JUnit测试(http://www.360doc.com/content/13/0927/15/7304817_317455642.shtml)
- Maven运行JUnit测试之mvn test的默认行为
- 记录一下selenium+maven+svn+jenkins+junit构建无人值守的自动化测试环境