在Gradle 中对Junit5 测试框架引用

news/2024/5/20 5:08:12 标签: gradle

Junit5 是最近众所周知的Junit 测试框架。Junit5是模块化的,并且由不同的模块组成。

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

  • JUnit Platform是在JVM上启动测试框架的基础。
  • JUnit Jupiter是新编程模型和扩展模型的组合,用于在JUnit 5中编写测试和扩展。
  • JUnit Vintage提供了一个TestEngine,用于在平台上运行基于JUnit 3和JUnit 4的测试。

在build.gradle中写下如下代码来支持运行 Junit Platform

test {
  useJUnitPlatform()
} 

可以在 useJUnitPlatform 中查看更多细节。

gradle.org/5.6.2/userguide/java_testing.html#compiling_and_executing_junit_jupiter_tests">Compiling and executing JUnit Jupiter tests

为了支持Junit Jupiter ,可以添加如下依赖

dependencies { 
  testImplementation("org.junit.jupiter:junit-jupiter-api:5.1.0") 
  testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.1.0") 
} 

然后就可以写代码,并且运行 gradle test 来执行。

gradle.org/5.6.2/userguide/java_testing.html#executing_legacy_tests_with_junit_vintage">Executing legacy tests with JUnit Vintage

就如前面所写,如果你想运行 Junit3/4,或者是同 Jupiter tests混合运行,那么需要引入 JUnit Vintage Engine 依赖。

dependencies { 
  testImplementation("org.junit.jupiter:junit-jupiter-api:5.1.0") 
  testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.1.0") 
  testCompileOnly("junit:junit:4.12") 
  testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.1.0") 
} 

Filtering test engine

Junit Platform 允许使用不同的测试引擎, Junit 当前提供了两种开箱即用的 TestEngine,junit-jupiter-engine and junit-vintage-engine.。当然也可以自自定义自己的实现的详细说明可以点击链接.

默认情况下,所有的测试引擎都会在测试运行期间使用,但如果想显示的实现具体的测试引擎,可以添加如下的配置来实现Filter specific engines

tasks.test { 
  useJUnitPlatform { 
​    includeEngines("junit-vintage") 
​    // excludeEngines("junit-jupiter") 
  } 
} 

A test engine filtering sample can be found at samples/testing/junitplatform/engine in the ‘-all’ distribution of Gradle.

参考文档


  1. Testing in Java & JVM projects

http://www.niftyadmin.cn/n/1183274.html

相关文章

MyBatis---------环境搭建(一)

目录 MySQL存储引擎InnoDB与Myisam 默认字符集 MyBatis使用 1.导入依赖 2.编写MyBatis核心配置文件 3.创建MyBatis工具类 4.Maven资源配置 测试 容易产生的问题: 1.配置文件没有注册 2.maven资源问题 3.绑定接接口错误 4.方法名不对 5.返回类型不对 …

当挫折来敲门【转】

转了两篇文章,当遇到挫折的时候,可以读一下。 HP大中华区总裁孙振耀退休感言 一、关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企…

当运行一个Docker容器的时候如何启动某些Service服务?

问题描述:当运行一个容器的时候如何启动某些Service? 例如,已经在容器内安装了MySql 服务器,但在进入容器的时候 > docker run -it 09d18b9a12be /bin/bash发现MySQL 服务并没有自动的启动。而是需要进入容器,手动…

LIUNX LVS

Linux下用lvs软件实现集群 目标: 学会分别使用LVS的NAT(NAT转换),DR(直接路由),TNU(隧道技术)实现linux下服务器的集群 结构: 1. 简单介绍集群的概念 2. lvs实现集群的三种方式 3. lvs十种调度算法 4. ipvsadm的使用方法简介 5. lvs实现…

独自在家的一周

今天,看了一位年轻居士的博客,心里很有感触,对学佛仿佛又有了新的认识。凡向佛之人都有一颗敏感细致的心,而且常常生来就宽厚仁义、与众不同,与佛结缘是早晚的事吧,但这一次我是从一个母亲的角度看待这个年…

MyBatis---------动态SQL、缓存(三)

什么是动态SQL&#xff1a;动态SQL就是指根据不同的条件生成不同的SQL语句 所谓的动态SQL&#xff0c;本质还是SQL语句 &#xff0c; 只是我们可以在SQL层面&#xff0c;去执行一个逻辑代码 IF <if test"title ! null">and title #{title} </if> S…

在 Python 中的常见的几种字符串替换操作

基于Python3.7.3中&#xff0c;主要的方法有 替换子串&#xff1a;replace()替换多个不同的字符串&#xff1a;re.sub()&#xff0c;re.subn()用正则表达式替换&#xff1a;re.sub()&#xff0c;re.subn()根据位置来替换&#xff1a;slice() replace() 方法 比如&#xff0c…

给文章加入关键字链接

最近在做一个网站&#xff0c;遇到需要给网站内所有的文章加关键字链接的问题&#xff0c;我们在浏览一些网站的文章的时候&#xff0c;会发现文章里面的某些关键字是加了链接的&#xff0c;并且高亮显示。 开始技术部门打算在后台添加或者修改文章的时候&#xff0c;把文章里面…