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

使用Jupiter进行Java参数化单元测试:更好地参考测试数据集

对于基于gradle的侧轨项目,我从junit4移到了junit5(jupiter),这在编写参数化测试

对于基于gradle的侧轨项目,我从junit4移到了junit5(jupiter),这在编写参数化测试时具有更大的灵活性。那很棒。

但是,有一个烦人的细节使调试测试变得繁琐:与Intellij IDEA的测试运行程序不同,gradle测试运行程序将所有测试用例结果可视化为列表,但是列表项(因此测试用例)由数字键引用数据源中用于参数化测试的数据集条目的数量。因此,实际测试数据不像IDEA的测试运行程序那样。哪个并不能真正帮助您理解许多测试用例中的哪个失败。

我了解到这是我面临的一个问题,因为要努力使测试顺利进行。使用IDEA自己的测试运行器时一切正常。但是,我还是犹豫使用那个:我使用gradle的原因是我使用了外部构建管道。而且使用两个不同的测试跑步者闻起来就像必须处理不同的测试结果...

所以我的问题是:如何让gradle测试运行者使用实际测试数据作为测试用例的参考?与IDEA的测试运行程序相似吗?我尝试使用地图,但木星解释说它无法流式传输。
我发现的唯一解决方法是将一些数据集标识符输出到StdOut,但该标识符埋在其余的输出中。
有人可以告诉我如何以更优雅的方式实现这一目标吗?理想地如下面的示例所示?

一个例子:

@ParameterizedTest
@MethodSource("allFactoredClasses")
public void clearInstances_shouldClearInstances(Class factoredClass) {
// ...
}
static private Set> allFactoredClasses() {
Reflections reflectiOns= new Reflections("com.example.project");
return reflections.getSubTypesOf(Factored.class);
}

这是实际的可视化效果(已键入,因此我不必张贴图像):

TestResults
com.example.project.factory.FactoredTest
v clearInstances_shouldClearInstances(Class)[1]
v clearInstances_shouldClearInstances(Class)[2]
v clearInstances_shouldClearInstances(Class)[3]
x clearInstances_shouldClearInstances(Class)[4]
v clearInstances_shouldClearInstances(Class)[5]
v clearInstances_shouldClearInstances(Class)[6]
v clearInstances_shouldClearInstances(Class)[7]

这是所需的可视化效果:

TestResults
com.example.project.factory.FactoredTest
v clearInstances_shouldClearInstances(Class)[Controller]
v clearInstances_shouldClearInstances(Class)[Reader]
v clearInstances_shouldClearInstances(Class)[Parser]
x clearInstances_shouldClearInstances(Class)[Writer]
v clearInstances_shouldClearInstances(Class)[Logger]
v clearInstances_shouldClearInstances(Class)[Filter]
v clearInstances_shouldClearInstances(Class)[Command]

这将使立即查看“ Writer”数据集(Writer.class)的测试用例失败变得容易得多……





推荐阅读
  • 标题: ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文介绍了Java中Currency类的getInstance()方法,该方法用于检索给定货币代码的该货币的实例。文章详细解释了方法的语法、参数、返回值和异常,并提供了一个示例程序来说明该方法的工作原理。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
author-avatar
书友76075933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有