首页 > 编程语言 >junit单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

junit单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

时间:2023-04-01 15:00:44浏览次数:42  
标签:lang java jar version 报错 Hamcrest junit hamcrest

今天在复习的时候对对一些知识点进行巩固,用到了junit-4.12.jar,手动导入jar包,然后运行然后报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing。刚开始我以为代码错了,看了看发现不是代码的问题,是导包的问题。然后查询了百度,发现了是版本的问题:
然后说换个低版本的就可以了,说换成4.10就可以了。测试了一下果然

查官网:JUnit now uses the latest version of Hamcrest. Thus, you can use all the available matchers and benefit from an improved assertThat which will now print the mismatch description from the matcher when an assertion fails.

junit.jar: Includes the Hamcrest classes. The simple all-in-one solution to get started quickly.Starting with version 4.11, Hamcrest is no longer included in this jar.
junit-dep.jar: Only includes the JUnit classes but not Hamcrest. Lets you use a different Hamcrest version.
注意黑色加下划线的部分 意思是4.11以上版本不在包含hamcrest。
所以现在有两个办法解决:

  1. junit版本降到4.10
  2. 导入hamcrest-core-1.3.jar

标签:lang,java,jar,version,报错,Hamcrest,junit,hamcrest
From: https://www.cnblogs.com/jundong2177/p/17278629.html

相关文章

  • JAVA基础
    1关键字1.1关键字全部小写2变量2.1什么是变量?变量就是在内存中存储的最基本的单元(可变)2.2变量的使用三要素:数据类型,变量名,值;inti=100;ps:JAVA中必须声明后再赋值才能访问!同一个......
  • clang和gcc一些不同
    环境-m32-O0x86-64clang12.0.0x86-64gcc10.1不同栈帧开辟intmain(){inta=1;intb=2;}在clang下开辟栈帧的代码是这样的。pushl%ebpmovl%esp,%ebpsubl$8,%esp局部变量大小是多少,就开多少但在gcc下是这样的pushl%ebpmovl%esp,%ebpsubl$16,......
  • Java识别获取PDF中文字信息(此方法任意PDF的信息都可以拿到)
    Java识别获取PDF中文字信息一、举例需求(拿较难的发票识别举例)  平时工作或者开发过程中如果遇到需要识别pdf发票中信息的情况,如获取发票代码号码,开票日期,校验码等,比如下面的发票,项目中需要读取发票中信息。二、方法原理  使用java中的pdfbox组件引用jar包使用,其中PDFTe......
  • 剑指offer42(Java)-连续子数组的最大和(简单)
    题目:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释: 连续子数组 [4,-1,2,1]的和最大,为 6。提示:1<= arr.length<=10^5-100<=arr[i]<=1......
  • AsyncTask重复运行报错的解决办法。
      接着这节课老师讲的内容,因为AsyncTask只可以运行一次,如果你在AsyncTask运行中再次点击START按钮的话,也会引发一个崩溃报错(如图)  Cannotexecutetask:thetaskisalreadyrunning.翻译过来的意思是:无法执行任务,任务已经在运行中。这就是在AsyncTask运行中,又点击了......
  • javascript 学习笔记3
    和let一样,通过const定义的变量不会被提升到顶端。const变量不能在声明之前使用。回调函数曾经是JavaScript中实现异步函数的主要方式。=>的使用:functiondoStep1(init,callback){constresult=init+1;callback(result);}functiondoStep2(init,callback){......
  • 解决tabix建索引报错[E::hts_idx_push] Unsorted positions on sequence #
    当我对两个基因型文件位置取交集,并重新生成两个vcf:$bcftoolsview-Roverlap.lstvariant.filter.vcf.gz-Oz-o300.vcf.gz出现如下错误:$tabix300.vcf.gz[E::hts_idx_push]Unsortedpositionsonsequence#4:29013869followedby29013853tbx_index_buildfailed:300.......
  • java reflection exception--can not access a member of class XXX with modifiers "
    Ifyoutrytovisitthevalueofanobject'sprivatefieldusingreflection,suchasField#getorField#set,youshouldcallField#setAccessibleahead.lookatthesampleprogrambelow.ItworkswhenIrunit.Field[]fields=ref......
  • 【Azure 应用服务】Function App / App Service 连接 Blob 报错
    问题描述因Blob启用了防火墙功能,但是当把AppService或FunctionApp的出站IP地址都加入到Blob的白名单中,为什么访问还是403错误呢? 问题解答AzureStorage的IP网络规则不适用于同一数据中心的客户端。存储帐户部署在同一区域中的服务使用专用的AzureIP地址进行通信。因此,不......
  • Java 数组
    数组数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们数组的声明和创建首先必须声明数组变量,才能在程序中使用数组。Java语言使用new操作符来创建数组,语......