热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在同一个构建中执行JUnit4和JUnit5测试

如何解决《在同一个构建中执行JUnit4和JUnit5测试》经验,为你挑选了1个好方法。

在Maven项目中,我有一些现有的测试依赖于JUnit 4.由于多种原因,我无法在JUnit 5中迁移这些测试.
实质上,一些测试依赖于使用JUnit 4 runner的库,代码迁移可能需要一些时间.

我想用JUnit 5创建新的测试类,现在已经发布并提供了新的有趣功能.
怎么做 ?



1> davidxxx..:

JUnit 5提供了开箱即用的方法.

JUnit 5 = JUnit平台+ JUnit Jupiter + JUnit Vintage

每个项目都是一个独特的项目,使用它们可以在同一个项目中编译和执行JUnit 4和JUnit 5测试.

JUnit Jupiter是用于在JUnit 5中编写测试和扩展的新编程模型和扩展模型的组合.

JUnit Vintage提供了一个TestEngine,用于在平台上运行基于JUnit 3和JUnit 4的测试.

JUnit平台是在JVM上启动测试框架的基础


更新:来自Maven Surefire 2.22.0

从JUnit 5文档:

从版本开始2.22.0,Maven Surefire为在JUnit平台上执行测试提供本机支持.

所以配置要简单得多.
请注意,junit-4api依赖项是可选的engine,因为现在需要的依赖项已经提取了默认api版本(junit 4和5都是这种情况).

这是一个例子pom.xml.


    4.0.0
    david
    jupiter-4-and-5-same-build
    0.0.1-SNAPSHOT

    
        1.8
        1.8
        5.1.0
        
        4.12
    
    
        
        
            org.junit.jupiter
            junit-jupiter-engine
            ${junit-jupiter.version}
            test
        
        
        
            org.junit.vintage
            junit-vintage-engine
            ${junit-jupiter.version}
        
        
        
            junit
            junit
            ${junit.version}
            test
        
    

    
        
            
                maven-surefire-plugin
                2.22.0
            
        
    


在我的GitHub空间中,我添加了一个可以浏览/克隆的工作示例maven项目.网址:https://github.com/ebundy/junit4-and-5-minimal-maven-project


老路:下面是Maven Surefire 2.22.0

以下是与Maven一起使用的最小配置,用于配置项目以编译和运行JUnit4和JUnit5测试:


    4.0.0
    mygroup
    minimal-conf-junit4-5
    0.0.1-SNAPSHOT

    
        
        1.8
        1.8
        
        4.12
        4.12.1
        5.0.1
        1.0.1
    

    
        
        
            org.junit.jupiter
            junit-jupiter-api
            ${junit-jupiter.version}
            test
        
        
        
            junit
            junit
            ${junit.version}
            test
        
    

    
        
            
                maven-surefire-plugin
                2.19.1 
                
                    
                    
                        org.junit.platform
                        junit-platform-surefire-provider
                        ${junit-platform.version}
                    
                    
                    
                        org.junit.vintage
                        junit-vintage-engine
                        ${junit-vintage-engine}
                    
                    
                    
                        org.junit.jupiter
                        junit-jupiter-engine
                        ${junit-jupiter.version}
                    
                
            
        
    

现在mvn test编译并运行JUnit 4和JUnit 5测试.

注1:在junit-vintage-engine(4.12.1)和junit(4.12)的依赖性不指定完全相同的版本.
这根本不是问题:

他们的释放与他们之间没有关系

junit-vintage-engine旨在运行任何JUnit 34测试.

注2:maven-surefire-plugin与2.19.1版本无关,无论你想编译JUnit 5测试类还是JUnit 4和JUnit 5测试类.
下一版本的插件在JUnit 5测试执行期间确实会导致一些异常,但2.22.0最终解决了这个问题(参见答案的第一部分:" 更新:来自Maven Surefire 2.22.0 ").


推荐阅读
  • 开发笔记:(源码开放) React + webpack3 多页面应用 及 常见问题解答
    本文由编程笔记#小编为大家整理,主要介绍了(源码开放)React+webpack3多页面应用及常见问题解答相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 以下内容|尾部_quarkus实战之一:准备工作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了quarkus实战之一:准备工作相关的知识,希望对你有一定的参考价值。欢迎访问我的GitHub ... [详细]
  • 两种方式实现Flink异步IO查询Mysql
    如官网所描述的Flink支持两种方式实现异步IO查询外部系统http ... [详细]
  • Shiro 简单了解
    Shiro简单了解简单用过SpringSecurity安全框架后,再试试另一个安全框架——Shiro。1.Shiro简介ApacheShiro是一个强大且易用的Java安全框架:S ... [详细]
  • 如何理解MyBatis动态SQL
    本篇内容主要讲解“如何理解MyBatis动态SQL”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解M ... [详细]
  • 前言微服务架构(MicroserviceArchitecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务 ... [详细]
  • 开发笔记:深度探索!Android之OkHttp网络架构源码解析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度探索!Android之OkHttp网络架构源码解析相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 分享_Jenkits搭建芝波分享
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jenkits搭建------芝波分享相关的知识,希望对你有一定的参考价值。   ... [详细]
  • idea启动springmvc项目时报找不到类的解决方法
    这篇文章主要介绍了idea启动springmvc项目时报找不到类的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值, ... [详细]
  • 最近学习了数据挖掘常用的两种算法:FP-Growth和K-Means。现在把我的学习结果分享给大家。以下是本文的目录,大家可以根据需要跳过一些章节:1.FP-Grow ... [详细]
  • 1.方法一:采用OleDB读取EXCEL文件:把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:publicDa ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了在单独的JVM上执行新的JavaFX应用程序相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Elasticsearch简单使用系列安装
    2019独角兽企业重金招聘Python工程师标准1.elasticsearch支持的操作系统和JVM版本https:www.elastic.cosupportmatrix2. ... [详细]
  • POI编程
    POI编程1简介在我们实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中 ... [详细]
  • IntelliJ IDEA 卡成球了?
    在和同事的一次讨论中发现,对IntelliJIDEA内存采用不同的设置方案,会对IDE的速度和响应能力产生不同的影响。Don’tbeaScroogeandgiveyourIDEso ... [详细]
author-avatar
林林净洁_526
这个家伙很懒,什么也没留下!
RankList | 热门文章