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

ScalaTest规范编译错误

发布时间:2020-12-16 19:05:25 所属栏目:安全 来源:网络整理
导读:我是 Scala的新手,我试图使用 ScalaTest.我将其依赖项包含在我的build.sbt文件中 libraryDependencies = Seq( ??“org.scalatest”%“scalatest_2.11”%“2.1.7”%“test” ) 并刷新sbt,现在它出现在我的External Libraries文件夹中,所以我认为它已正确安
我是 Scala的新手,我试图使用 ScalaTest.我将其依赖项包含在我的build.sbt文件中
libraryDependencies = Seq(
??“org.scalatest”%“scalatest_2.11”%“2.1.7”%“test”
)

并刷新sbt,现在它出现在我的External Libraries文件夹中,所以我认为它已正确安装.现在我想做一个测试类.所以我在src / test / scala下创建了一个.我使用ScalaTest网站的首页的例子

import collection.mutable.Stack
import org.scalatest._

class ExampleSpec extends FlatSpec with Matchers {

  "A Stack" should "pop values in last-in-first-out order" in {
    val stack = new Stack[Int]
    stack.push(1)
    stack.push(2)
    stack.pop() should be (2)
    stack.pop() should be (1)
  }

  it should "throw NoSuchElementException if an empty stack is popped" in {
    val emptyStack = new Stack[Int]
    a [NoSuchElementException] should be thrownBy {
      emptyStack.pop()
    }
  }
}

但是当我运行这个类时,我得到错误

Error:scalac: bad symbolic reference. A signature in package.class refers to type compileTimeOnly
in package scala.annotation which is not available.
It may be completely missing from the current classpath,or the version on
the classpath might be incompatible with the version used when compiling package.class.

并且

Error:(4,27) Reference to class FlatSpec in package scalatest should not have survived past type checking,it should have been processed and eliminated during expansion of an enclosing macro.
class ExampleSpec extends FlatSpec with Matchers {
                      ^

有人可以告诉我问题是什么.看起来它不是识别ScalaTest.然而,在我的外部图书馆和IntelliJ的自动完成也显示它在那里.在我开始使用ScalaTest之前,我是否需要刷新别的东西?

编辑:

另外当我运行测试:从sbt编译我得到

[error] error while loading package,class file needed by package is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading Matchers,class file needed by Matchers is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading Assertions,class file needed by Assertions is missing.
[error] reference value internal of package scala.reflect.macros refers to nonexisting symbol.
[error] error while loading AbstractSuite,class file needed by AbstractSuite is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading Tolerance,class file needed by Tolerance is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading BeWord,class file needed by BeWord is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading ResultOfNotWordForAny,class file needed by ResultOfNotWordForAny is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] error while loading NotWord,class file needed by NotWord is missing.
[error] reference value <init>$default$2 of object deprecated refers to nonexisting symbol.
[error] 8 errors found
[error] (test:compile) Compilation failed

解决方法

看来SBT试图针对scala 2.9.2进行编译.
我想你必须添加一个

scalaVersion := "2.10.4"

要么

scalaVersion := "2.11.1"

到你的build.sbt

而且当然

libraryDependencies += "org.scalatest" %% "scalatest" % "2.1.7" % "test"

另外你可以尝试最新的SBT launcher.

(编辑:李大同)

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

    推荐文章
      热点阅读