使用maven实现单元测试和集成测试
来源:互联网 发布:js 调用base64编码 编辑:程序博客网 时间:2024/06/10 10:39
单元测试是对最小单元即方法的测试,要隔离对他模块的依赖,一般采用stub和mock两种方式
集成测试是对功能的测试,对于大部分web模块来说需要启动web容器,进行集成测试
maven生命周期中已经包含测试(test)和集成测试(integration-test),但未对两种测试代码做区分,需要自己解决启动web容器和代码区分问题。
首先配置maven jetty插件在集成测试阶段自动启动
然后测试代码进行单元测试和集成测试区分,一般有两种方式:
一是使用maven profile,通过profile区分
二是根据生命周期,配置maven surefire 插件不同生命周期的includes或/exclueds属性
我使用的方式二,在src/test/java目中把单元测试代码放在unit包,集成测试代码放在integration包,具体配置如下:
可以参考http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing
运行集成测试命令 : mvn integration-test
2012-05-16 15:36:44.293::INFO: Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.346 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
集成测试是对功能的测试,对于大部分web模块来说需要启动web容器,进行集成测试
maven生命周期中已经包含测试(test)和集成测试(integration-test),但未对两种测试代码做区分,需要自己解决启动web容器和代码区分问题。
首先配置maven jetty插件在集成测试阶段自动启动
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.10</version> <configuration> <stopPort>9966</stopPort> <stopKey>stop-jetty-for-it</stopKey> <contextPath>/SDKAuth</contextPath> <scanIntervalSeconds>10</scanIntervalSeconds> <jettyEnvXml>${basedir}/src/test/resources/jetty-env.xml</jettyEnvXml> </configuration> <executions> <execution> <id>start-jetty</id> <!--集成测试前启动jetty--> <phase>pre-integration-test</phase> <goals> <goal>run</goal> </goals> <configuration> <daemon>true</daemon> </configuration> </execution> <execution> <id>stop-jetty</id> <!--集成测试结束停止jetty--> <phase>post-integration-test</phase> <goals> <goal>stop</goal> </goals> </execution> </executions> </plugin>
然后测试代码进行单元测试和集成测试区分,一般有两种方式:
一是使用maven profile,通过profile区分
二是根据生命周期,配置maven surefire 插件不同生命周期的includes或/exclueds属性
我使用的方式二,在src/test/java目中把单元测试代码放在unit包,集成测试代码放在integration包,具体配置如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.9</version> <configuration> <skip>true</skip> </configuration> <executions> <execution> <id>run-integration-test</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <skip>false</skip> <includes> <include>**/integration/**/*.java</include> </includes> </configuration> </execution> <execution> <id>run-test</id> <phase>test</phase> <goals> <goal>test</goal> </goals> <configuration> <skip>false</skip> <includes> <include>**/unit/**/*.java</include> </includes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.0</version> <configuration> <dependentWarExcludes>WEB-INF/lib</dependentWarExcludes> </configuration> </plugin> </plugins>
可以参考http://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing
运行集成测试命令 : mvn integration-test
引用
2012-05-16 15:36:44.293::INFO: Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.346 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
- 使用maven实现单元测试和集成测试
- 单元测试和集成测试
- Maven使用failsafe实现集成测试
- Maven sonar 单元测试 集成测试 整合
- Spring 单元测试和集成测试
- Spring MVC的单元测试和集成测试(不使用mock)
- Spring MVC的单元测试和集成测试(不使用mock)
- 软件测试技术---单元测试和集成测试
- 单元测试、集成测试和功能测试
- 集成测试和单元测试覆盖率合并
- 单元测试和集成测试业务应用程序
- 单元测试、集成测试、系统测试和验收测试
- 单元测试,集成测试,系统测试 的区别和联系
- 单元测试.集成测试,系统测试 的联系和区别
- 集成测试单元测试.系统测试,的联系和区别
- 单元测试、集成测试、系统测试
- maven执行单元和集成测试
- 关于单元测试和集成测试的新的理解
- 自定义标签
- 启拓(QITUO)AV矩阵:用高清无损色彩征服工程商
- Java的内存回收机制
- Problem C
- Hack and / - Password Cracking with GPUs, Part I: the Setup
- 使用maven实现单元测试和集成测试
- ZOJ 2412(Farm Irrigation)
- Struts2注解(旧&新)
- Oracle树形结构查询
- 迄今见过的最好的职业规划文章
- C#(WinForm)实现软件注册
- 域名查询 php页面
- c语言中冒泡排序、插入排序、选择排序算法比较
- Maven单元测试(四)