因项目需要,重拾java,现在的java平台已不同学生时代,CI(持续集成)都采用maven项目结构,边学变干活~
本文包含:
1. maven创建简单的java项目
2. 进行单元测试JUnit4
3. 收集覆盖率
4. 附录
------------------------------------------正文分割线-------------------------------------------
1. maven创建项目
1)安装略
2)mvn 交互式创建项目 (附录参考1)
参考:groupId:qctest artifactId:test package:demo 其他默认
3)运行 compile test-compile test
4) 查看单元测试结果 ./target/surefire-reports/TEST-xxx.xxx.xml
2. 单元测试(JUnit4)
1)修改pom.xml文件
修改junit的version 3.8.x -> 4.10
1)修改单元测试maven自己创建的单元测试使用的JUnit3,单元测试编码不够灵活。这里采用JUnit4,区别如下:
A).JUnit4中已经不需要继承TestCase。
B).在JUnit4中,方法前加上@Before,代表setup,加@beforeDoTest代表teardown。
C).在JUnit3要求test名和方法名一致,JUnit4无此要求,只需加 @Test。
D).需要import java.lang.annotation.Annotation>
E).Junti4中,不需要suite方法,(可能)不需要构造函数。
F).assert判断语法变更 assertTrue(...) -> Assert.assertTrue(...);
举例子如下:
package demo;
import org.junit.After;
import org.junit.Before;
import org.junit.Assert;
import org.junit.Test;
import java.lang.annotation.Annotation;
public class AppTest
{
/**
* optional
*/
@Before
public void beforeDoTest() throws Exception
{
;
}
/**
* optional
*/
@After
public void afterAllTest() throws Exception
{
;
}
/**
* Rigourous Test :-)
*/
@Test
public void testApp()
{
Assert.assertTrue( true );
}
}
3. 收集覆盖率
执行命令 mvn clean compile test-compile test cobertura:cobertura site
覆盖率信息将生成在: ./target/site/cobertura下, html形式
4. 附录:
mvn常用命令
1. mvn compile 编译源代码
2. mvn test-compile 编译测试代码
3. mvn test 运行测试
5. mvn package 打包,根据pom.xml打成war或jar
如果pom.xml中设置 war,则此命令相当于mvn war:war
如果pom.xml中设置 jar,则此命令相当于mvn jar:jar
6. mvn -Dtest package 打包但不测试。完整命令为:mvn -D maven.test.skip=true package
7. mvn install 在本地Repository中安装jar
8. mvn clean 清除产生的项目
9. mvn eclipse:eclipse 生成eclipse项目
10.mvn idea:idea 生成idea项目
11.mvn eclipse:clean 清除eclipse的一些系统设置
参考:
1)http://blog.linguofeng.com/pages/tools/Maven.html <一个最基本的用maven实现的helloword例子>
2)http://blog.youkuaiyun.com/ivanon/article/details/8494110 <基本的Maven入门指南,概念这里都有了>
3)http://blog.youkuaiyun.com/zhaofsh/article/details/6156756 [全]