单元测试是对最小单元即方法的测试,要隔离对他模块的依赖,一般采用stub和mock两种方式
集成测试是对功能的测试,对于大部分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
分享到:
相关推荐
MvnTestsSeparation 尝试使用 maven 分离单元测试和集成测试
使用Maven构建和测试Java项目 Maven外部依赖 Maven项目文档 Maven项目模板 Maven快照 Maven构建自动化 Maven依赖管理 Maven自动化部署 Maven Web应用 Eclispe IDE集成Maven NetBeans IDE集成Maven Eclipse构建Maven...
介绍这个示例项目展示了如何分别运行单元测试和集成测试仅通过测试安装应用程序 mvn clean install仅运行测试 mvn test使用测试和集成测试安装应用程序 mvn clean install -Pintegration-test运行集成测试 mvn ...
Jmeter+Jenkins+maven接口自动化集成测试框架 可以方便JMeter开发的接口测试脚本自动构建执行,生成html报告,发送邮件。
如果要针对自定义版本的Maven运行集成测试,请使用以下命令: export MAVENCODEBASE= 您可以选择从此处构建Maven项目: mvn verify -P local-it -f "$MAVENCODEBASE" 现在运行(不要忘记更新版本!) mvn clean ...
详细描述了持续集成环境的搭建步骤,包括集成hudson sonar maven等环境进行单元测试自动执行,代码规则校验等。是搭建持续集成环境,改建软件自动化测试和校验的学习精品。
源码里面包含了了一个简单的插入功能,主要是为了测试mybatis是否连接上数据库的时候写的测试类,作为一个刚学java,被抓壮丁的写服务器端的妹子,我只想说,画了我3周...如题,基于maven项目的ssm框架和cxf框架的整合。
详细描述了maven的配置步骤
当前,有关Maven插件/ Maven扩展等的集成测试的基本内容是,现有的解决方案不是基于Apache Maven项目悠久的开发历史而非常简洁和全面的。 一段时间内有很多不同的方法,但是从我的角度来看,它们都缺少一件事:简单...
基于maven实现的spring-framework_4.1.6.RELEASE + mybatis集成,包含的测试用例
集成测试示例使用Spring Boot和Maven创建单元和集成测试的简单示例命令mvn全新安装仅运行单元测试mvn全新安装-Dit 运行单元测试以及集成测试。 src / test /中有两个脚本,run-pre-integration.sh和run-post-...
Integration-Tests-with-Maven3-Failsafe-plugin-Undesandig 弄清楚如何使用 maven 和 Failsafe 插件编写集成测试。 运行集成测试: mvn clean verify 但最好将它们放在单独的配置文件中。 有一个想法可以显示在 ...
此文件包含了maven的安装文件和集成eclipse的插件; 使用方法如下: 1、将maven 文件拷贝至C:\maven下,配置环境变量M2_HOME=C:\maven 2、将M2_HOME加在path路径后,测试安装是否成功打开doc ;cmd;输入mvn -v 没报错...
maven+springMVC集成的neo4j实例,本例子测试的neo4j的版本是3.5.3
” 使用Maven进行Java编写的示例构建,展示了一些非常简单的测试。 此示例说明: 一个带有测试的简单Java 8应用程序 用编写的单元测试 用编写的集成测试 通过代码覆盖率报告 一个将所有内容组合在一起的Maven构建 ...
4. **项目报告和文档**:Maven可以生成各种项目报告和文档,如代码覆盖率报告、单元测试报告、项目文档等。 5. **集成工具**:许多IDE和构建工具都支持Maven,使得开发者可以方便地使用Maven进行项目管理。
接口自动化-jenkins+maven+jmeter持续集成.pdf
背景:jenkins作为中央调度器,集成java、maven、git、email、html-report环境,搭建 一个自动化测试框架,可性能也可接口;maven负责项目管理,jenkins服务器就不需要安 装jmeter运行环境(错误的,maven项目配置...
Java-Maven-Junit-HelloWorld “你好,世界!” 使用Maven进行Java编写的... | 单元测试| 集成测试--- | --- | ---位于: src/test/java/*Test.java | src/test/java/*IT.java在Maven阶段执行: 测试验证由Maven插件
在运行和调试两个菜单项上添加maven的处理方式,根据直接调用maven的原生命令来进行单元测试或main方法的运行,你仍然可以使用一流的处理方式运行。需求IntelliJ IDEA 12及更高版本依赖插件(__粗体__为必选插件):...