2015年11月, JUnit Lambda团队展示了他们的原型 。 此后,该项目更名为JUnit 5,并于2016年2月发布了Alpha版本。我们将在一系列简短文章中对其进行探讨:

  • 设定
  • 基本
  • 建筑
  • 条件
  • 注射

本章讨论JUnit 5的设置,以便您可以针对新API编写代码并在IDE或构建工具中运行测试。

总览

在新兴的《 JUnit 5用户指南》中可以找到您将在此处阅读的更多内容以及更多内容。 请注意,它基于Alpha版本,因此可能会发生变化。

确实,我们鼓励我们提出问题或提出请求,以便JUnit 5可以进一步改进。 请利用这个机会! 这是帮助JUnit帮助我们的机会。

如有必要,此帖子将得到更新。 我在这里显示的代码示例可以在Github上找到。

写作测试

junit5-api构件中包含用于编写测试的API。 编写测试只需要使用您喜欢的构建工具将其包含在项目中即可。

  • 群组ID :org.junit5
  • 工件ID :junit5-api
  • 版本 :5.0.0-ALPHA

要处理一些事情,让我们快速创建第一个测试 :

HelloWorldTest.java

package org.codefx.demo.junit5;import org.junit.gen5.api.Test;class HelloWorldTest {@Testvoid helloJUnit5() {System.out.println("Hello, JUnit 5.");}}

见妈,不公开! 酷吧? 我目前不会讨论它,但是下一篇文章将讨论这个(以及其他基础知识),所以请继续关注。

运行测试

随着JUnit 5的不断发展,缺乏对本机工具的支持。 但是有一些准备工作可以使一切正常运行。

JUnit 4运行器

甲测试运行称为JUnit5可以用来作为JUnit 4运行的一部分来运行新的测试。 您将在自己的工件中找到它,必须将其添加到项目中:

  • 群组ID :org.junit5
  • 工件ID :junit4-runner
  • 版本 :5.0.0-ALPHA

运行程序将调用实际运行JUnit 5测试的引擎。 引擎还具有自己的工件,您必须添加以下工件:

  • 群组ID :org.junit5
  • 工件ID :junit5-engine
  • 版本 :5.0.0-ALPHA

要运行项目中的所有测试,最简单的为其创建测试套件的方法是:

package org.codefx.demo.junit5;import org.junit.gen5.junit4.runner.JUnit5;
import org.junit.gen5.junit4.runner.Packages;
import org.junit.runner.RunWith;@RunWith(JUnit5.class)
@Packages({ "org.codefx.demo.junit5" })
public class TestWithJUnit5 { }

注意,该类必须是常规的JUnit 4测试类,即,它必须遵守通用的命名约定,并且必须是公共的。 @ Packages-annotation将包解释为层次结构,因此它将在所有以org.codefx.demo.junit5为前缀的包中运行所有测试。 如果愿意,可以直接在JUnit 5测试类上使用相同的运行器。 在这种情况下,它们必须是公开的。

现在我们完成了! 您最喜欢的IDE和构建工具将愉快地运行带有@RunWith(JUnit5.class)注释的类,从而运行新的JUnit 5测试。

在真正的JUnit 5支持出现之前,某些功能可能无法使用,例如,IDE将无法运行单独的测试方法。 但是暂时我发现这是最简单,最不依赖工具的解决方案。

生成工具支持

JUnit团队已经在努力实现对JUnit 5的构建工具支持,即不通过JUnit 4绕道而行。基本的Gradle插件和Maven Surefire提供程序已启动并正在运行。 这两个项目都计划在某个时候移交给各自的社区。

两者都有示例项目( Gradle和Maven )。 有关更多详细信息,请参阅用户指南 。

命令行的胜利!

如果这一切对您来说太花哨了,请尝试console console ,它可以让您直接从命令行运行测试。 要获取它,您可以下载此ZIP 。

不幸的是它不能开箱即用 。 我不得不将上述的junit5-api和junit5-engine工件放到lib中,然后在bin中的脚本中将类路径定义编辑为CLASSPATH = $ APP_HOME / lib / *,以使其工作。

忽略其他依赖项(例如,在其他测试库上),可以按以下方式使用它:

使用junit控制台

# run all tests
junit-console -p ${path_to_compiled_test_classes} -a
# run a specific test
junit-console-p ${path_to_compiled_test_classes}org.codefx.demo.junit5.HelloWorldTest

发布时间由托马斯LETH -奥尔森在CC-BY-SA 2.0

兼容性

您可能已经注意到,JUnit 5占用了一个新的名称空间:org.junit.gen5。 这意味着当在同一项目中使用不同的JUnit版本时,不会有冲突。

实际上,一个项目可以包含并运行来自不同版本的测试而不会出现问题,这允许缓慢迁移到JUnit5。我们在研究JUnit的新体系结构时将重新讨论该主题。

通过异常与JUnit通信的测试库(如Hamcrest和AssertJ)将继续在新版本中工作。 使用Mockito和AssertJ查看完整的HelloWorldTest版本示例。

反射

对于我们的JUnit 5设置,我们在项目中包括了junit5-api,junit5-engine和junit4-runner,编写了第一个最小测试用例,并将其作为JUnit 4测试套件的一部分运行。

下一篇文章将探讨如何在JUnit 5中编写测试的基础知识。

翻译自: https://www.javacodegeeks.com/2016/02/junit-5-setup.html

JUnit 5 –设置相关推荐

  1. junit测试设置不回滚_正确设置JUnit测试名称

    junit测试设置不回滚 寻找好名字是手工软件的挑战之一. 您需要随时随地找到它们-类,方法,变量,仅举几例. 但是,什么使名字成为好名字呢? 引用Oncle Bob的话:"三件事:可读性, ...

  2. eclipse外观设置

    eclipse调优  一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善.  加快启动速度  ...

  3. junit5和junit4_JUnit 5 –设置

    junit5和junit4 2015年11月, JUnit Lambda团队展示了他们的原型 . 此后,该项目更名为JUnit 5,并于2016年2月发布了Alpha版本.我们将在一系列简短文章中进行 ...

  4. Eclipse的设置、调优、使用(解决启动卡顿等问题)

    eclipse调优  一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善.  加快启动速度  ...

  5. 测试学习java_使用Junit测试框架学习Java

    前言 在日常的开发中,离不开单元测试,而且在学习Java时,特别是在测试不同API使用时要不停的写main方法,显得很繁琐,所以这里介绍使用Junit学习Java的方法.此外,我使用log4j将结果输 ...

  6. IDEA中使用Junit测试并提高覆盖率

    1.安装和配置 首先下载相关jar包,这里用的版本Junit4.13.JUnitGenerator(2.0)和 hamcrest-core-1.3.jar. 这里要注意,junit-4.11以上版本不 ...

  7. 自动化测试框架 2019_2019年用于自动化的5个最佳Java测试框架

    自动化测试框架 2019 几十年来,Java一直是开发应用程序服务器端层的首选编程语言. 尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但随着时间的推移和测试的发展,当自动化测试不断 ...

  8. spark restful_使用Spark构建简单的RESTful API

    spark restful 免责声明 :这篇文章是关于名为Spark的Java微型Web框架的,而不是关于数据处理引擎Apache Spark的 . 在此博客文章中,我们将看到如何使用Spark构建简 ...

  9. 2019年用于自动化的5个最佳Java测试框架

    几十年来,Java一直是开发应用程序服务器端层的首选编程语言. 尽管JUnit一直在与开发人员一起帮助他们进行自动化的单元测试,但是随着时间的推移和测试的发展,当自动化测试不断增长时,已经开发了许多基 ...

最新文章

  1. CPU缓存与CPU性能的关系
  2. MPLS由何而来?—Vecloud微云
  3. python之获取目录下的文件名
  4. LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
  5. Y/C分离/2/3D滤波器
  6. java 调用 ictclas50_1-Ictclas50分词系统ForJava
  7. LeetCode 1784. 检查二进制字符串字段
  8. 浅谈权限(功能权限数据权限)
  9. ubuntu动态截图(GIF动画)
  10. 从SAP客户主数据里直接创建商机(Opportunity) 1
  11. charles抓手机app的包的操作步骤
  12. shell sort 最后一列排序_Shell 编程 排序工具 sort 和 uniq
  13. 4种复制文件的方式性能比较
  14. QC的七大手法和八大原则
  15. 改变磁盘格式gpt_改变游戏规则或结束游戏? 准备好参加GPT-3
  16. 百度和谷歌到底有什么区别?看完终于明白了!
  17. 关于Win10。。。我是来吃螃蟹的。。。
  18. 计算机乘法算法流程,布斯乘法算法
  19. 免费的外文文献搜索下载工具推荐
  20. 使用dot.tk和Sina SAE服务免费搭建自己的网站

热门文章

  1. 高级 | Java中获取类名的3种方法
  2. python3如何连接mysql数据库
  3. 【程序员】保持一颗虚心好学的心态去敲代码
  4. 对ASCALL码的理解
  5. 写一个算法统计在输入字符串中各个字符出现的频度
  6. JavaScript实现复选框全选与全不选的效果
  7. IntelliJ IDEA: 无法创建Java Class文件
  8. foxmail 不知道这样的主机_华为P50真机图!网友:早知道这样,就不加价买mate40了...
  9. 计算机硬件统的构成,计算机硬件统的构成部件.ppt
  10. java本地创建zk节点