Как найти вещи и установить их с Scala sbt? - PullRequest
0 голосов
/ 20 апреля 2020

Я новичок в Scala и борюсь с sbt и установкой вещей. Например:

Я хочу развиваться в Eclipse и, следовательно, использовать JUnit. Согласно:

http://www.scalatest.org/user_guide/using_junit_runner

«ScalaTest включает JUnit Runner», что, похоже, не так. По крайней мере не для меня. (Я получаю object is not a member of package org.scalatest при попытке import org.scalatest.junit.JUnitRunner, но import org.scalatest.flatspec.AnyFlatSpec работает нормально)

Как мне установить его? Я посмотрел на свой файл sbt, содержащий строки:

libraryDependencies += "org.scalactic" %% "scalactic" % "3.1.1"
libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.1" % "test"

, и подумал, что все в порядке, поэтому мне нужен org.scalatest.junit, и попытался добавить его следующим образом:

libraryDependencies += "org.scalatest" %% "junit" % "3.1.1" 

, что, конечно, дал мне три (!) экрана:

Note: Unresolved dependencies path:
[error] sbt.librarymanagement.ResolveException: Error downloading org.scalatest:junit_2.12:3.1.1
[error]   Not found

(Почему это так повторяется? Это только одна вещь, которую он не нашел, но жалуется на это как четыре раза!)

Как мне понять, как установить такие вещи? Прямо сейчас я пробую комбинированный подход к догадкам и случайному поиску в Google, иногда это работает, а иногда (как сейчас) у меня ничего не получается ...

1 Ответ

2 голосов
/ 20 апреля 2020

В ScalaTest 3.1.x для выполнения наборов ScalaTest с использованием JUnit runner добавьте следующие зависимости к build.sbt

libraryDependencies ++= List(
  "org.scalatest"      %% "scalatest"           % "3.1.1"     % Test,
  "org.scalatestplus"  %% "scalatestplus-junit" % "1.0.0-M2"  % Test
)

и аннотируйте комплект следующим образом:

import org.junit.runner.RunWith
import org.scalatestplus.junit.JUnitRunner
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers

@RunWith(classOf[JUnitRunner])
class HelloSpec extends AnyFlatSpec with Matchers {
  "The Hello object" should "say hello" in {
    Hello.greeting shouldEqual "hello"
  }
}

Существует открыть вопрос для обновления документации: Документ о том, как использовать JUnitRunner в 3.x # 1780

...