java.lang.IncompatibleClassChangeError:使用ScalaCheck和ScalaTest实现类

编程入门 行业动态 更新时间:2024-10-20 03:32:45
本文介绍了java.lang.IncompatibleClassChangeError:使用ScalaCheck和ScalaTest实现类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

当尝试使用ScalaCheck和ScalaTest编写测试时,我遇到了一个令人讨厌的异常.这是我的依赖项:

I'm facing a nasty exception when trying to write a test using ScalaCheck and ScalaTest. Here's my dependencies:

libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "2.2.6" % "test", "org.scalacheck" %% "scalacheck" % "1.13.0" % "test" )

这是我的考试:

import org.scalatest.PropSpec import org.scalatest.prop.Checkers class MyPropSpec extends PropSpec with Checkers { property("List.concat") { check((a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size) } }

当我尝试运行此程序时,我会得到:

When I try to run this I'm getting:

DeferredAbortedSuite: Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite *** ABORTED *** java.lang.IncompatibleClassChangeError: Implementing class at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.URLClassLoader.defineClass(URLClassLoader.java:467) at java.URLClassLoader.access$100(URLClassLoader.java:73) at java.URLClassLoader$1.run(URLClassLoader.java:368) at java.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ... java.lang.IncompatibleClassChangeError: Implementing class at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.URLClassLoader.defineClass(URLClassLoader.java:467) at java.URLClassLoader.access$100(URLClassLoader.java:73) at java.URLClassLoader$1.run(URLClassLoader.java:368) at java.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ...

我在这里想念什么?

推荐答案

ScalaTest 2.2.6与ScalaCheck 1.13.0不兼容.降级为"scalacheck"%"1.12.5"会有所帮助.

ScalaTest 2.2.6 is incompatible with ScalaCheck 1.13.0. Downgrading to "scalacheck" % "1.12.5" helps.

这被报告为 github/rickynils/scalacheck/issues/217 .该问题已通过以下解决方法解决:

This was reported as github/rickynils/scalacheck/issues/217. The issue is closed with following resolution:

所有当前版本的ScalaTest(2.2.6、3.0.0等)都是根据ScalaCheck 1.12.1构建的(请参见 github/scalatest/scalatest/blob/master/project/scalatest.scala#L134 ).因此,不能保证您可以简单地将ScalaCheck 1.12.x换成1.13.y. ScalaCheck仅维护同一次要版本系列(1.12.1、1.12.2、1.12.3等)内的二进制兼容性.

All current releases of ScalaTest (2.2.6, 3.0.0 etc) are built against ScalaCheck 1.12.1 (see github/scalatest/scalatest/blob/master/project/scalatest.scala#L134). Therefore, there are no guarantees that you can simply swap out ScalaCheck 1.12.x for 1.13.y. ScalaCheck only maintains binary compatibility within the same minor version series (1.12.1, 1.12.2, 1.12.3 etc).

更多推荐

java.lang.IncompatibleClassChangeError:使用ScalaCheck和ScalaTest实现类

本文发布于:2023-11-25 15:27:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1630295.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:lang   java   IncompatibleClassChangeError   ScalaTest   ScalaCheck

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!