2016-02-18 5 views
8

EDIT: он работает, если файл находится в src/test/scala/tests /, но не в src/main/scala/mypackage/Why?scalatest: объект scalatest не входит в пакет org

Я попробовал решения по темам с людьми, имеющими почти такую ​​же проблему, но ни одна из них не работает.

В деталях, у меня есть это в build.sbt:

libraryDependencies ++= Seq(
    ... 
    "org.scalatest" % "scalatest_2.10" % "2.2.1" % "test", 
    ... 

В IntelliJ класс с:

import org.scalatest.{BeforeAndAfterAll, Suite} 

с {BeforeAndAfterAll, сюита} в красном, так что я думаю, scalatest найден

SBT пакет не работает слишком:

объект scalatest не является членом пакета org [ошибка] импорт org.scalatest. {BeforeAndAfterAll, Люкс}

Я уже пытается это:

  • SBT чистое обновление
  • рестарт + аннулирует кэш IntelliJ
  • удалить .idea/и реимпорт
  • libraryDependencies + = "org.scalatest"% "scalatest_2.10"% "2.0"% "test" вместо ogf фактический
  • магический ритуал на моей клавиатуре

Ничто не работает

Любая идея?

+0

Почему вы хотите использовать scalatest в src/main? – Ben

+0

удалите% "test" из зависимостей библиотеки scalatest. Пока это не так, вы не получите требуемую запись в пути к классам на этапе компиляции. – philwalk

+0

Вы исправились? Я получаю ту же ошибку. Любые советы будут полезны. – Srinivas

ответ

13

Вы должны смотреть на sbt project structure:

src/ 
    main/ 
    resources/ 
     <files to include in main jar here> 
    scala/ 
     <main Scala sources> 
    java/ 
     <main Java sources> 
    test/ 
    resources 
     <files to include in test jar here> 
    scala/ 
     <test Scala sources> 
    java/ 
     <test Java sources> 

Ваши тесты должны Scala идти под src/test/scala/.

Если вы действительно хотите использовать scalatest в основном (и вы знаете, что вы пытаетесь делать), попробуйте следующее:

"org.scalatest" % "scalatest_2.10" % "2.2.1", 

В оригинальном build.sbt, «тест» является конфигурация, и это означает, что scalatest будет находиться только в тестовом классе, и он не нужен основным источникам. Это, как правило, хорошая практика для библиотек, потому что вашим пользователям обычно не нужны ваши тестовые зависимости для использования вашей библиотеки (ref).

+0

После 45 минут путаницы, спасибо ... действительно –

Смежные вопросы