maven配置testng

为了有用,自动测试应该运行得非常快。 否则,将不会在开发期间经常运行,甚至在开发人员工作站上的默认配置中将被忽略。 最简单的规则是只编写小型单元测试,该测试将模拟给定类的邻居。 然而,有时在IoC容器上下文(Spring,CDI,Guice)或使用嵌入式数据库(H2,HyperSQL,Derby)中进行测试是有用的/必需的。 不幸的是,即使是这种类型的测试,也可能显着增加总体测试执行时间。 我在一个项目中遇到这种情况,并且为了避免使用skipTests标志,我使用了TestNG和Maven Surefire插件中的组开发了一种解决方案。

测试分为三组:

  • 非常快速的真实单元测试(默认情况下全部为)–在开发过程中应经常运行(通过IDE或通过mvn测试,mvn软件包)
  • 集成速度较慢,但​​自给自足的测试(设置Spring上下文和/或使用嵌入式H2数据库)–至少应在提交/推送之前或在给定部件上运行时运行(通过IDE或通过mvn集成测试,mvn安装)
  • 真正的集成测试(需要访问远程服务器,例如测试Web服务或REST),应每天由CI服务器或从事集成工作的开发人员运行(mvn安装,mvn集成测试并启用其他配置文件)

为了实现给定的测试(或测试类),必须将其标记为“自集成”或“集成”(在方法或类级别):

@Test(groups = "self-integration")
public void shouldInitializeChainedAppInfoProperly() {
@Test(groups = "integration")
public class FancyWebServiceIntegrationTest {

Maven Surefire插件应配置为从默认执行中排除“自集成”和“集成”测试组,并在“集成测试阶段”添加“自集成”:

<build><plugins>(...)<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${ver.surefire-plugin}</version><executions><execution><id>default-test</id> <!-- to override default configuration - in fact: unit tests --><configuration><excludedGroups>self-integration,integration</excludedGroups></configuration></execution><execution><id>self-integration</id><phase>integration-test</phase><goals><goal>test</goal></goals><configuration><groups>self-integration</groups><reportsDirectory>target/self-integration-surefire-reports/</reportsDirectory></configuration></execution></executions></plugin></plugins></build>

另外(如果需要),可以创建在“集成测试”阶段配置的带有“集成”测试组的单独的单独配置文件。

<profiles>(...)<profile><id>integration</id><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${ver.surefire-plugin}</version><executions><execution><id>integration</id><phase>integration-test</phase><goals><goal>test</goal></goals><configuration><groups>integration</groups><reportsDirectory>target/integration-surefire-reports/</reportsDirectory></configuration></execution></executions></plugin></plugins></build></profile></profiles>

可以在AppInfo的人工分支(pom.xml和示例测试类)中找到工作示例。 根据您的需要很容易采用它。

所有三个测试组都有单独的报告格式,以免彼此覆盖。 作为扩展,可能可以将它们合并到一个汇总的测试报告中。

参考: 跑得快单元测试的时候,慢整合很少- TestNG的和Maven配置指南从我们JCG伙伴马尔钦Zajaczkowski在固态软博客。

翻译自: https://www.javacodegeeks.com/2012/04/testng-and-maven-configuration-guide.html

maven配置testng

maven配置testng_TestNG和Maven配置指南相关推荐

  1. maven配置testng_TestNG Maven Surefire插件配置

    maven配置testng TestNG Maven surefire plugin configurations let us define which tests to execute when ...

  2. 如何解决Spring Data Maven构建的“生命周期配置未涵盖的插件执行”

    我正在尝试使用Spring Data和Neo4j . 我首先尝试遵循主站点链接的本指南 . 特别是,我的pom.xml基于" Hello,World!". 示例文件 . 这是导致问 ...

  3. maven的安装和环境配置的过程记录

    [前置环境确认]第一步确认本机已正确安装jdk,并且已经在环境变量中配置JAVA_HOME,修改了Path.cmd命令行中输入echo %JAVA_HOME%,查看JAVA_HOME是否配置.在CMD ...

  4. maven之setting.xml的配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  5. java plugin 安装_eclipse maven plugin 插件 安装 和 配置

    Posted on 2012-07-13 12:40 fancydeepin 阅读(96246) 评论(45)  编辑  收藏  所属分类: Maven3 Guide 环境准备: eclipse(He ...

  6. web静态资源访问规则||webjars的访问配置——webjars是maven库里面对css js image打的一个jar包

    Html css js image  txt   web项目中 放在 Webapp 在springboot项目中  静态资源放置的位置 Springboot默认的静态资源目录 (1)在src/main ...

  7. Maven下载、配置环境变量、配置本地仓库、国内镜像源、在IDEA中配置Maven

    场景 Maven官网下载地址: https://maven.apache.org/download.cgi 此下载地址时下载最新的版本的Maven包. 目前是Maven3.6.3 注: 博客: htt ...

  8. Windows环境下maven 安装与环境变量配置

    Maven是一个项目管理的Java 工具,在JavaEE中,我们可以使用Maven方便地管理团队合作的项目,现在我们在学习JavaEE框架,使用Maven可以管理类库,有效方便地供团队中的其他人员使用 ...

  9. Maven(一):安装与环境配置、使用Maven搭建web项目

    相关阅读: Maven(一):安装与环境配置.使用Maven搭建web项目 Maven(二):常用命令.依赖管理 Maven(三):将web项目的war包热部署到远程Tomcat服务器 Maven(四 ...

最新文章

  1. python3连接mysql,python3连接MySQL数据库实例详解
  2. Python图像处理,cv2模块,OpenCV实现人脸检测蔡徐坤
  3. C#-Socket(TCP)
  4. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
  5. Swift 中的指针使用
  6. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用41
  7. OSI七层模型及应用
  8. 360回扫样本存储系统Xstore的设计与实践
  9. esp8266 rtos 开发环境 ubuntu_Ubuntu快速搭建C++开发环境(VS Code编辑器)
  10. Javascript-逻辑运算符()
  11. 【note】《软件体系结构》知识整理(1-5章)
  12. 解决SourceTree不断提示输入密码问题
  13. win7 exfat补丁_U盘重装win7系统后必不可少的几大优化
  14. mysql认证考试_MySQL 8 OCP(1Z0-908)认证考试题库原题(第12题)
  15. 于的繁体字有几种写法_“二”的繁体字有几种写法
  16. CameraLink传输协议
  17. acm 程序设计大赛各种输入方式(python版)
  18. ubuntu20.04系统安装谷歌浏览器
  19. java后端实现集成支付宝APP支付(沙箱环境)
  20. 618家用投影仪推荐!当贝投影F3成大众首选!

热门文章

  1. mysql中如何将默认用户名root改成其他?
  2. 使用相对长度单位rem布局网页内容
  3. javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext-dao.xml
  4. 新闻发布项目——接口类(categoryTBDao)
  5. JQuery $作用
  6. IntelliJ IDEA如何导入Gradle项目
  7. javabean与json转换(fastjson与jackson两个版本)
  8. java中使用kotlin_在Kotlin中使用libGDX
  9. c 遍历文件 递归遍历_将递归文件系统遍历转换为流
  10. Apache CXF 3.0:CDI 1.1支持替代Spring