Запуск теста specs2 на IntelliJ вызывает исключение InvocationTargetException

#scala #intellij-idea #playframework #sbt #specs2

#scala #intellij-идея #playframework #sbt #specs2

Вопрос:

У меня есть проект Scala Play, который используется specs2 в качестве тестовой платформы. Мне сложно запускать тесты из IntelliJ. Я получаю следующую ошибку:

 InvocationTargetException for 'main' in org.specs2.NotifierRunner: null


Process finished with exit code 0
 

Тесты успешно выполняются из sbt . Я видел несколько других сообщений, в которых говорится, что это может быть связано с ScalaTestPlus , но я не использую ScalaTest .

Вот как выглядят мои зависимости

build.sbt

 libraryDependencies   = Seq(
  ws,
  guice,
  specs2 % Test,
...
)
 

project/plugins.sbt

 // The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.6")

...
 

Тест выглядит следующим образом:

 @RunWith(classOf[JUnitRunner])
class MyAppSpec extends PlaySpecification with Mockito {
...
 

Комментарии:

1. Какую команду вы используете, которая работает sbt ?

2. Не могли бы вы запустить sbt> show externalDependencyClasspath и проверить, какая версия specs2? Возможно, вы захотите попробовать specs2-core-4.10.5

3. Какую конфигурацию запуска вы используете для запуска тестов? Проверьте jetbrains.com/help/idea /…

4. @TomerShetah я просто запускаю sbt test @Eric, которого я не вижу specs2 на show externalDependencyClasspath . Я попытался добавить dependencyOverrides = "org.specs2" % "specs2" % "3.7" % Test и dependencyOverrides = "org.specs2" % "specs2-core" % "4.10.6" % Test без какого-либо успеха @Andrey да, я следовал конфигурации, описанной в документации Jetbrains

Ответ №1:

просто оставьте комментарий для тех, кто все еще борется, надеюсь, это поможет.

Я столкнулся с той же ошибкой, это вызвано тем, что я просто использую другую версию scala со specs2. я определяю двоичную версию scala как 2.12 , но импортирую скомпилированный 2.11 specs2.