Junit测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

报错部分异常:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing

at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)

Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 22 more

使用的junit版本:4.12

原因是由于:junit4.11以上版本不在包含hamcrest。

      从JUnit4.4开始引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活。

      Hamcrest 提供了大量被称为“匹配器”的方法。其中每个匹配器都设计用于执行特定的比较操作。Hamcrest的可扩展性很好,让你能够创建自定义的匹配器。

解决办法:1.降低junit的版本到4.11或4.11以下

     2.引入导入hamcrest-core包

猜你喜欢

转载自www.cnblogs.com/YpfBolg/p/11236962.html
今日推荐