Почему Scalatest можно использовать через Junit в Scala

В build.sbt примера задания в курсе Scala используется тестовая библиотека junit 4.10. О Скалатесте не упоминается.

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. Если да, то в чем причина встраивания scalatest в junit?


person Polymerase    schedule 01.04.2018    source источник
comment
Какой это курс Scala?   -  person laughedelic    schedule 02.04.2018
comment


Ответы (1)


Я проверил проект задания из упомянутого курса, и на самом деле он имеет довольно сложную структуру с использованием устаревшего способа определения сборки в project/*.scala файлах, расширяющих Build.

Однако ответ на ваш вопрос прост: зависимость scalatest определена в project/CommonBuild.scala и добавлена ​​в сборку в project/StudentBuildLike.scala. Так что никакого волшебства нет, вы используете обычный scalatest и пользовательский тест-раннер (см. project/ScalaTestRunner.scala).

person laughedelic    schedule 03.04.2018
comment
О, scalatest зависимость разбросана в этом лабиринте определения сборки SBT. Надеюсь, автор курса модернизирует build.sbt - person Polymerase; 03.04.2018
comment
Ага. Это могло быть извлечено в плагин sbt. Легче поддерживать, меньше шаблонов и путаницы для студентов. Но я думаю, это работает, так зачем менять?... - person laughedelic; 03.04.2018
comment
Почему изменения? Название курса SCALA SPECIALIZATION. Это достаточная причина, на мой взгляд. - person Polymerase; 03.04.2018