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

scalatest - can't expand macros compiled by previous versions of Scala

所以我们有一个 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 进行了尝试,并且成功了。

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