Установите scalatest в Scala IDE для Eclipse

Я установил Eclipse Luna. Затем я установил Scala IDE через Help -> Install new software и добавил сайт программного обеспечения со ссылкой здесь. Затем я установил sbt 0.13 и sbteclipse с помощью этого мини-руководства и создал проект eclipse. Затем я установил (своего рода) scalatest, добавив его в свой build.sbt. Теперь это выглядит так:

val scalaTest = "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"

lazy val commonSettings = Seq(
  scalaVersion := "2.11.6"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    libraryDependencies += scalaTest
  )

Затем я создал тест на основе этого примера. Файл с именем FirstSpec.scala находится в папке testProject/src/test/scala-2.11/testProject/. Итак, вот проблема: eclipse, похоже, не видит scalaTest. Вторая строка с import org.scalatest._ подчеркнута красным цветом с описанием ошибки object scalatest is not a member of package org. И, следуя этому руководству, я не вижу вариант Run As -> ScalaTest - Suite при выборе тестового класса . В то же время все идет хорошо, когда я запускаю сеанс sbt в своем тестовом проекте и набираю команду test. Тесты запускаются и проходят.

Итак, мои вопросы:

  • почему eclipse не видит scalestest, если я поместил его в libraryDependencies build.sbt? В чем тогда смысл библиотечных зависимостей?
  • Почему sbt test без проблем выполняет тесты? Если sbt видит scalatest, почему eclipse не может?

person Vadim Samokhin    schedule 05.04.2015    source источник


Ответы (1)


Уф, этот разрешил мой проблема. Итак, пример build.sbt может выглядеть примерно так:

import com.typesafe.sbteclipse.plugin.EclipsePlugin._

EclipseKeys.withSource := true

val scalaTest = "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
val jodaConvert = "org.joda" % "joda-convert" % "1.7"
val joda = "joda-time" % "joda-time" % "2.7"

lazy val commonSettings = Seq(
  scalaVersion := "2.11.6"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    libraryDependencies += scalaTest
  ).
  settings(
    libraryDependencies += jodaConvert
  ).
  settings(
    libraryDependencies += joda
  )

Затем сделайте следующее:

rm -rf  ~/.ivy2/cache/

sbt update-classifiers

sbt eclipse
person Vadim Samokhin    schedule 06.04.2015