加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么我的scalatest测试不会编译? (scala.MatchError)

发布时间:2020-12-16 19:09:29 所属栏目:安全 来源:网络整理
导读:我的项目中有所有代码: package fileSearcherimport org.scalatest.FlatSpecclass FilterCheckerTests extends org.scalatest.FlatSpec { "Foo" should "not do terrible things" in { assert(1 == 1) } } sbt test与scala.MatchError崩溃(下面有完整的详细
我的项目中有所有代码:

package fileSearcher

import org.scalatest.FlatSpec

class FilterCheckerTests extends org.scalatest.FlatSpec {
  "Foo" should
  "not do terrible things" in {

    assert(1 == 1)
  }  
}

sbt test与scala.MatchError崩溃(下面有完整的详细信息).

我究竟做错了什么?

[info] Compiling 1 Scala source to C:scalacourseFileSearchertargetscala-2.1
0test-classes...
[error]
[error]      while compiling: C:scalacourseFileSearchersrctestscalafileSe
archerFilterCheckerTests.scala
[error]         during phase: typer
[error]      library version: version 2.10.4
[error]     compiler version: version 2.10.4
[error]   reconstructed args: -classpath C:scalacourseFileSearchertargetsca
la-2.10test-classes;C:scalacourseFileSearchertargetscala-2.10classes;C:U
sersMax.ivy2cacheorg.scalatestscalatest_2.11bundlesscalatest_2.11-2.2.4.j
ar;C:UsersMax.ivy2cacheorg.scala-langscala-reflectjarsscala-reflect-2.11
.2.jar;C:UsersMax.ivy2cacheorg.scala-lang.modulesscala-xml_2.11bundlessc
ala-xml_2.11-1.0.2.jar;C:UsersMax.ivy2cachecom.novocodejunit-interfacejar
sjunit-interface-0.11.jar;C:UsersMax.ivy2cachejunitjunitjarsjunit-4.11.
jar;C:UsersMax.ivy2cacheorg.hamcresthamcrest-corejarshamcrest-core-1.3.j
ar;C:UsersMax.ivy2cacheorg.scala-sbttest-interfacejarstest-interface-1.0
.jar -bootclasspath C:Program FilesJavajdk1.8.0_20jrelibresources.jar;C:P
rogram FilesJavajdk1.8.0_20jrelibrt.jar;C:Program FilesJavajdk1.8.0_20j
relibsunrsasign.jar;C:Program FilesJavajdk1.8.0_20jrelibjsse.jar;C:Prog
ram FilesJavajdk1.8.0_20jrelibjce.jar;C:Program FilesJavajdk1.8.0_20jre
libcharsets.jar;C:Program FilesJavajdk1.8.0_20jrelibjfr.jar;C:Program F
ilesJavajdk1.8.0_20jreclasses;C:UsersMax.ivy2cacheorg.scala-langscala-
libraryjarsscala-library-2.10.4.jar
[error]
[error]   last tree to typer: Literal(Constant(true))
[error]               symbol: null
[error]    symbol definition: null
[error]                  tpe: Boolean(true)
[error]        symbol owners:
[error]       context owners: value <local FilterCheckerTests> -> class FilterCh
eckerTests -> package fileSearcher
[error]
[error] == Enclosing template or block ==
[error]
[error] Template( // val <local FilterCheckerTests>: <notype> in class FilterChe
ckerTests
[error]   "org.scalatest.FlatSpec" // parents
[error]   ValDef(
[error]     private
[error]     "_"
[error]     <tpt>
[error]     <empty>
[error]   )
[error]   // 2 statements
[error]   DefDef( // def <init>(): fileSearcher.FilterCheckerTests in class Filt
erCheckerTests
[error]     <method>
[error]     "<init>"
[error]     []
[error]     List(Nil)
[error]     <tpt> // tree.tpe=fileSearcher.FilterCheckerTests
[error]     Block( // tree.tpe=Unit
[error]       Apply( // def <init>(): org.scalatest.FlatSpec in class FlatSpec,tree.tpe=org.scalatest.FlatSpec
[error]         FilterCheckerTests.super."<init>" // def <init>(): org.scalatest
.FlatSpec in class FlatSpec,tree.tpe=()org.scalatest.FlatSpec
[error]         Nil
[error]       )
[error]       ()
[error]     )
[error]   )
[error]   Apply(
[error]     "Foo".should("not do terrible things")."in"
[error]     Apply(
[error]       "assert"
[error]       Apply( // def ==(x: Int): Boolean in class Int,tree.tpe=Boolean(t
rue)
[error]         1."$eq$eq" // def ==(x: Int): Boolean in class Int,tree.tpe=(x:
 Int)Boolean
[error]         1
[error]       )
[error]     )
[error]   )
[error] )
[error]
[error] == Expanded type of tree ==
[error]
[error] ConstantType(value = Constant(true))
[error]
[error] uncaught exception during compilation: scala.MatchError
[trace] Stack trace suppressed: run last test:compile for the full output.
[error] (test:compile) scala.MatchError: false (of class scala.reflect.internal.
Trees$Literal)
[error] Total time: 0 s,completed Jun 20,2015 11:07:15 AM
1. Waiting for source changes... (press enter to interrupt)

解决方法

正如您通过查看由编译器打印的类路径所看到的,您将Scala 2.10与2.11的库混合在一起.鉴于Scala的主要版本是二进制不兼容的,这可能永远不会起作用.

这可以通过scalaVersion:=“2.11.5”或通过设置所有依赖项来使用2.10版本来修复,这可以使用libraryDependencies =“group”%%“libName”%“version”来完成,其中%%表示sbt自动使用正确的库版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读