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
被排除在外。
所以我们有一个 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
被排除在外。