scalatest - 无法扩展以前版本的Scala编译的宏

时间:2017-07-07 15:52:51

标签: scala maven scalatest

所以我们有一个Scala程序(使用Maven构建)我们想要使用Scalatest进行测试。我们正在运行Scala 2.11.8和Scalatest 3.0.1(我们已经尝试过3.0.3无效)

当我们的测试使用assert()宏运行任何内容时,我们会收到以下错误:

error: can't expand macros compiled by previous versions of Scala
       assert(true)
              ^

它指向true,但问题在于我们放入assert()的任何内容。我们的POM对Scalatest具有以下依赖性:

<dependency>
    <groupId>org.scalatest</groupId>
    <artifactId>scalatest_2.11</artifactId>
    <version>3.0.1</version>
    <scope>test</scope>
</dependency>

我们尝试执行的代码是:

import org.scalatest.{FlatSpec, _}
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner


@RunWith(classOf[JUnitRunner])
class Testing extends FlatSpec {
  //test
  var number = 0;
  "An empty Set" should "have size 0" in {
    assert(true)

  }
}

很多人说这是使用Scala 2.11但包含2.10依赖关系的问题,但我们正在使用2.11。任何帮助将非常感激。我还应该注意到我们使用Scala 2.10进行了尝试,但它确实有效。

1 个答案:

答案 0 :(得分:5)

运行mvn dependency:tree并找出哪些依赖项包含_2.10。 使用Dependency management确保包含_2.11,并使用_2.10 被排除在外。