Maven 插件说明

Surefire 自动化运行单元测试

功能

1、能够指定通配符过滤需要测试的类和排除的类,非常友好的结合Junit;
2、能够生成测试报告,包含测试覆盖率、分支覆盖率(if else)
单元测试覆盖率是什么意思?
比如说,你总共写了100行代码,然后你写了3个单元测试方法,结果这3个单元测试的方法会执行你的100行代码中的80行,另外有20行代码是无论运行哪个单元测试都不会执行的。此时单元测试覆盖率就是80 / 100,80%

一般单元测试覆盖率,要求的是,两种,方法覆盖率,行覆盖率。比如你一共写了10个方法,100行代码
方法覆盖率要达到90%,那么要求就是至少对10个方法中的9个方法都要运行
代码覆盖率要求70%,那么要求就是至少对70行代码都要执行到
分支覆盖率,如果你的代码中有if else,或者是try catch,相当于是你的一段代码根据不同的情况,可能会有2个分支,分支里面还可以再嵌套if else,再分出来2个分支

2 * 2 = 4

你的单元测试可以覆盖几个分支,1/4,25%;2 / 4,50%分支覆盖率

surefire插件默认就会在target/surefire-reports目录下生成错误报告,就是如果有单元测试运行失败的话,就会有。

同时可以引入cobertura插件,可以看到测试覆盖率的报告

配置

Cargo 自动化部署

功能及说明

cargo插件,就是专门用来进行将本地的web工程打包成一个war包,然后扔到远程的服务器上的Tomcat中去,然后就是给你自动化的部署

在搞定了整个系统的单元测试,web测试之后,就需要将整个系统完成构建,打出一个完整的war包,然后部署到web容器里去了,此时就要用cargo插件来进行自动化的web部署

配置

1、修改 pom.xml

2、settings.xml中加入 pluginGroup:org.codehaus.cargo

3、执行 mvn cargo:deploy 部署

Tips

(1)先在本地安装一个tomcat 6
(2)给tomcat 6设置一个管理员,在conf/tomcat-users.xml,
(3)修改tomcat的conf/server.xml,里面在8080那个地方,加入两个配置,URIEncoding=”UTF-8″ useBodyEncodingForURI=”true”
(4)启动tomcat
(5)在项目的pom.xml里加入cargo插件的配置,直接从我给的代码里面去拷贝
(6)在settings.xml里加入pluginGroup,org.codehaus.cargo
(7)解决中文编码的问题,先在web.xml里加入一个字符集编码的过滤器,直接从代码里面拷贝
(8)运行mvn clean package命令,打包,必须先有一个war包
(9)到这一步为止,就可以部署了,直接cargo:deploy,第一次部署,在http://localhost:8080/oa-web/,跟上接口,就可以去访问了
(10)以后重复部署,cargo:redeploy,自动会先卸载,然后再重新部署

注意事项1:在执行cargo命令的时候,切记,不要打开tomcat的任何配置问加你,因为也许会因为文件打开占用,导致一些不必要的bug

注意事项2:如果在实验过程中,遇到一些奇怪的问题,可以考虑在tomcat的webapps下面,删除oa-web目录和oa-web.war,接着重新先关闭tomcat,再启动tomcat,然后再次把你的工程package打包,然后cargo:deploy部署

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/bigdata/maintenance/maven-plugins.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆