我是Scala的新手,我正在尝试一些示例代码进行测试。但是,当我运行测试代码时,我遇到了一些问题。当我运行测试时,我得到了一个错误。
[trace] Stack trace suppressed: run last test:executeTests for the full output.
[error] (test:executeTests) java.lang.NoClassDefFoundError: scala/Product$class
[error] Total time: 3 s, completed Feb 27, 2017 6:57:15 PM
字符串
我的代码如下
FilterChecks.scala
class filterChecks extends FlatSpec {
"Filter checker passed a filename which is present in directory" should "return file name" in {
val matchingFileName = new FileObject("match")
val listOfFiles = List(new FileObject("random"), matchingFileName)
val matchedFiles = new FilterChecker("match").findMatchedFiles(listOfFiles)
assert(matchedFiles == List(matchingFileName))
}
}
型
过滤器类
class FilterChecker(filter : String) {
def matches(content : String) = content.contains(filter);
def findMatchedFiles(fileObjects : List[FileObject]) = {
for(fileObject <- fileObjects if(matches(fileObject.name)))
yield fileObject
}
}
型
FileObject
class FileObject(val name: String) {
}
型
构建文件如下:
name := "testScalaProject"
version := "1.0"
scalaVersion := "2.12.1"
// https://mvnrepository.com/artifact/org.scala-js/scalajs-test-interface_2.12
libraryDependencies ++= Seq("org.scala-js" % "scalajs-test-interface_2.12" % "0.6.14",
"org.scalatest" % "scalatest_2.11" % "2.2.5",
"com.novocode" % "junit-interface" % "0.11",
"org.scala-lang" % "scala-library" % "2.12.1")
型
有人能帮我找到这个问题吗?提前感谢。
3条答案
按热度按时间hgtggwj01#
你的sbt构建文件是不正确的.你的scala版本是2.12.x但是你正在使用在scala版本2.11编译的库.使用这sbt设置显示如下
注:我更改了scalatest的版本,因为2.12版scala不再支持2.x版本
字符串
记住在你的sbt控制台中执行
reload
,clean
和compile
来启动干净编译wbrvyc0a2#
具体地将scala-reflect添加到您的pom或相应地更改sbt:
字符串
dwthyt8l3#
此问题的根本原因是:scala项目上设置的scala依赖版本与环境或系统路径上设置的scala依赖版本不同。
项目的scala版本为2.12.x,而scala版本设置的环境变量为2.11.x。
两者应同步,且应具有相同版本
重新参考截图。
的数据
的