所以我们有一个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进行了尝试,但它确实有效。
答案 0 :(得分:5)
运行mvn dependency:tree
并找出哪些依赖项包含_2.10。
使用Dependency management确保包含_2.11,并使用_2.10
被排除在外。