为什么Scalatest可以在Scala中通过Junit使用

时间:2018-04-01 03:27:43

标签: scala junit sbt scalatest

在Scala课程中的示例分配的build.sbt中,使用的测试库是junit 4.10。没有提到Scalatest。

libraryDependencies += "junit" % "junit" % "4.10" % Test

然而,在测试类中可以引用scalatest,并且可以使用实际的scalatest语法编写测试:

import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class ListsSuite extends FunSuite with Matchers {
  ...etc...
}

问题:我想Scala编译器通过scalatest库访问junit。如果是这样,在junit中嵌入scalatest的原因是什么?

1 个答案:

答案 0 :(得分:1)

我从引用的课程中检查了作业项目,实际上它使用了在project/*.scala文件中定义构建的弃用方法,扩展了Build,结构非常复杂。

您的问题的答案很简单:在project/CommonBuild.scala中定义了最常见的依赖关系,并将其添加到project/StudentBuildLike.scala中的构建中。所以没有魔力,你使用普通的scalatest和自定义测试运行器(见project/ScalaTestRunner.scala)。