`
bruce008
  • 浏览: 173010 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在Maven 整合FireSure 和 FailSafe

    博客分类:
  • CI
 
阅读更多

通常我们都是用SureFire 来做unit test 用 FailSafe 做integration test。  这两个插件的区别主要在于SureFire 发现有失败的单元测试默认就会报错, 而FailSafe 会保证所有的集成测试都做完。

 

如果是简单的用这两个插件来做测试的统计是没有问题的, Maven 默认都支持的。 但是如果牵扯到支持代码的覆盖率, 并且将这两种测试的覆盖率都能在Sonar 里面能统计出来就比较麻烦了。  搜遍互联网没有几个比较靠谱的。 其中比较靠谱的也 https://davidvaleri.wordpress.com/2013/09/06/tracking-integration-test-coverage-with-maven-and-sonarqube/ 。 这个链接只做了maven-failsafe-plugin 统计集成测试的。 另外一个链接 http://www.petrikainulainen.net/programming/maven/creating-code-coverage-reports-for-unit-and-integration-tests-with-the-jacoco-maven-plugin/,  这个链接倒是有讲单元测试,集成测试合在一起。 

 

这里面有点关键点就是 

				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>0.7.2.201409121644</version>
					<executions>
						<execution>
							<id>prepare-unit-test-agent</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
							<configuration>
								<destFile>${basedir}/target/jacoco.exec</destFile>
								<propertyName>surefire.argLine</propertyName>
							</configuration>
						</execution>
					
						<execution>
						  <id>generate-unit-test-report</id>
							<goals>
							  <goal>report</goal>
							</goals>
						</execution>

						<execution>
						  <id>failsafe_</id>
						  <goals>
							<goal>prepare-agent-integration</goal>
						  </goals>
							<configuration>
							 <destFile>${basedir}/target/jacoco-it.exec</destFile>
							 <propertyName>jacoco.agent.arg</propertyName>
							</configuration>
						</execution>
						<execution>
						  <id>failsafe_report</id>
						  <goals>
							<goal>report-integration</goal>
						  </goals>
						</execution>

					</executions>
				</plugin>
				
				 <plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.10</version>
					<configuration>
						<forkCount>1</forkCount>
						<reuseForks>false</reuseForks>
						<argLine>-Xmx512M -XX:MaxPermSize=200M ${surefire.argLine}</argLine>
					</configuration>
				</plugin>
				
				<plugin>
				  <groupId>org.apache.maven.plugins</groupId>
				  <artifactId>maven-failsafe-plugin</artifactId>
				  <version>2.16</version>
				  <configuration>
					<!--skip>${skipIntegrationTests}</skip-->
					<argLine>${jacoco.agent.arg}</argLine>
				   <includes>
					 <include>**/ITCase*.java</include>
					 <include>**/*ITCase.java</include>
				   </includes>
				</configuration>
				  <executions>
					<execution>
					  <goals>
						<goal>integration-test</goal>
					  </goals>
					</execution>
				  </executions>
			</plugin>

 

我们得确保jacoco  输出 <propertyName>surefire.argLine</propertyName>  跟 surefire 或者failsafe 的 argLine 对应。 

 

这样在Sonar 中我们就可以看到这样的结果

 

 最近看看Sonar 生成的Report 好像coverage 都是0, 汗啊!

 应该是有参数没有设定好, 参考了网上的另外一个blog  http://www.aheritier.net/maven-failsafe-sonar-and-jacoco-are-in-a-boat/ 

现在终于比较靠谱点了。

 

  • 大小: 56.5 KB
分享到:
评论

相关推荐

    使用Maven整合ssm

    在Eclipse中创建Maven项目,选择"Maven Project",然后配置Group Id(全局唯一标识,一般由公司域名和项目名组成)、Artifact Id(项目名)和Version(项目版本)。Packaging字段定义了项目打包的格式,如jar或war。...

    maven整合ssh案例

    注意:运行前请配置Maven环境,和修改config.properties中数据库名称用户和密码,并且修改Tuser中的catalog注解为你的数据库名如下: @Entity @Table(name = "表名", catalog = "数据库名") 运行成功后输入 ...

    maven-failsafe-plugin-2.16.jar

    maven-failsafe-plugin-2.16.jar

    maven+ssm完美整合

    本教程将详细介绍如何通过Maven来整合Spring、SpringMVC和MyBatis,实现一个完整的后端开发环境。同时,由于包含了一个POI实例,我们还将探讨如何使用Apache POI库处理Excel数据。 1. Maven简介: Maven是一个基于...

    SSM+maven整合(所有jar包都是在maven上2017.8.30最新的包).zip

    下面将详细介绍SSM框架和Maven在Java开发中的作用,以及它们如何进行整合。 **Spring框架** 是一个全面的后端应用程序框架,它提供了一种依赖注入(DI)机制,用于管理对象的生命周期和装配。Spring还提供了AOP...

    Maven 整合SringMVC及MyBatis

    在现代Java开发中,Maven、SpringMVC和MyBatis是常见的技术栈,它们分别负责项目构建、Web层控制和数据访问。Maven作为一个强大的项目管理工具,能够帮助开发者管理依赖、构建项目以及执行测试。SpringMVC作为Spring...

    maven整合ssh项目,包含数据库

    在IT行业中,SSH(Struts2、Spring、Hibernate)是一个常用的Web开发框架组合,而Maven则是一个项目管理和综合工具,常用于构建、依赖管理和项目信息管理。本篇将详细介绍如何在Eclipse环境下,利用Maven整合SSH项目...

    freemarker+ssm+maven整合.rar

    在这个整合项目中,Maven负责下载并管理所有依赖库,确保SSM+Fremarker的正确运行。 6. **整合步骤**: - 配置pom.xml:在Maven的配置文件中,添加Spring、SpringMVC、MyBatis、Freemarker以及它们依赖的相关库。 ...

    maven 整合ssh之一

    【标题】"Maven 整合SSH之一" 涉及到的是在Java开发中如何使用Maven构建工具来整合Spring、Struts2和Hibernate这三个流行框架,这通常被称为SSH集成。SSH是一套强大的Java Web应用程序开发解决方案,可以帮助开发者...

    maven 整合ssm框架

    1.通过maven整合ssm+mysql 可以直接运行 建表语句放在项目sql文件中 2. 2.运行成功输入http://localhost:8080/test/selectUserAsJson 3.后续可自行添加功能 4.基于idea

    SpringMvc+Spring+Mybatis+Maven整合.part10

    通过SpringMvc+Spring+Mybatis+Maven整合,学习用maven搭建框架

    Spring SpringMVC Mybatis Activiti Maven整合demo

    在本项目中,Maven的pom.xml文件定义了所有依赖的库,使得开发者只需要声明依赖,而无需手动下载和管理。Maven的构建生命周期和插件机制,使得项目构建标准化,提高了开发效率。 综上所述,"Spring SpringMVC ...

    Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA

    在整合这些技术时,Maven作为项目构建工具,负责管理所有依赖。Spring作为核心框架,协调各个组件的运行。Spring MVC处理HTTP请求,将业务逻辑委托给Spring管理的bean。Hibernate和Spring Data JPA共同负责数据持久...

    maven整合SSH框架,ehcache搭建,可直接运行导入运行

    整合SSH框架意味着在Maven项目中配置Struts2、Spring和Hibernate的依赖,以及相应的插件和配置文件。Struts2提供MVC模式的前端控制,Spring负责依赖注入和事务管理,Hibernate则处理对象关系映射,实现数据库操作。 ...

    maven整合ssh2

    Maven 是一个强大的项目管理和构建工具,在Java开发领域广泛应用。SSH2 则是 Spring、Struts 和 Hibernate 三个开源框架的组合,它们分别负责控制层、视图层和持久层的处理。将 Maven 与 SSH2 整合可以方便地管理...

    Spring-SpringMVC-Hibernate在maven下整合

    【Spring-SpringMVC-Hibernate在maven下整合】是一个常见的Java Web开发示例,它展示了如何在Maven项目结构中集成三个核心的Java企业级框架:Spring、SpringMVC和Hibernate。这些框架分别用于控制反转(IoC)、模型-...

    spring springmvc mybatis maven整合

    在IT行业中,Spring、SpringMVC、MyBatis和Maven是四个非常关键的开源框架,它们在构建Java Web应用程序时发挥着重要作用。这四个组件的整合使得开发过程更为高效和模块化。下面将详细解释这些框架的核心概念以及...

    Maven整合SSM示例

    1. 创建Maven项目:在IDEA或Eclipse中选择Maven项目模板,生成基本的项目结构。 2. 配置POM.xml:添加Spring、SpringMVC、MyBatis以及它们的依赖。 3. 创建配置文件:包括Spring的applicationContext.xml,SpringMVC...

    maven整合spring+hibernate+struts2

    在整合这三个框架时,通常会在web.xml文件中配置Struts2的前端控制器,然后在Spring的配置文件中定义Bean,并在Struts2的配置文件中声明Action。在项目中,开发者可以利用Maven的生命周期来编译、测试和打包应用,...

    maven整合ssh框架、ehcache搭建、可直接运行导入运行

    这个压缩包文件提供的内容应该是已经完成了上述整合和配置的项目,可以直接导入到IDE中运行,对于初学者来说,这是一个很好的学习和实践SSH框架与Maven整合的实例。通过查看和分析代码,可以深入理解各个组件如何...

Global site tag (gtag.js) - Google Analytics