Удаленная отладка SBT работает в intellij, но не при выполнении тестов


Я выполняю следующую команду в терминале sbt -jvm-debug 9999 и запускаю конфигурацию удаленной отладки со значениями по умолчанию в Intellij 15.0.4-1. Далее я выполняю задачу sbt run, и точки останова работают, как и ожидалось. Когда я выполняю задачу test вместо отладки, она больше не работает, несмотря на то, что выполняется один и тот же код.

Используя play-scala активаторное семя с Play Framework 2.4. Тесты написаны в spec2. Кто-нибудь знает, что я могу сделать не так?

Вот мой код:

Класс Отладочный тест.scala

object DebugTest {
  def helloWorld(): Unit ={
    println("Oh my")
  }
}

Класс ApplicationSpec.scala

import org.specs2.mutable._

import play.api.test._
import play.api.test.Helpers._

class ApplicationSpec extends Specification {

  "Application" should {
    "just print oh my in console" in new WithApplication{
      DebugTest.helloWorld()
    }
  }
}

Сборка файла.sbt

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.7"

libraryDependencies ++= Seq( jdbc,
  ws,
  specs2 % Test,
  "org.webjars.bower" % "adminlte" % "2.3.3",
  "org.pac4j" % "play-pac4j" % "2.2.0-SNAPSHOT",
  "org.pac4j" % "pac4j-http" % "1.9.0-SNAPSHOT",
  "com.typesafe.play" % "play-cache_2.11" % "2.4.6"
)

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"
resolvers += "Sonatype snapshots repository" at "https://oss.sonatype.org/content/repositories/snapshots/"

routesGenerator := InjectedRoutesGenerator

fork in run := true
fork in test := false

Файловый тест.sbt

fork in test := false
1 3

1 ответ:

Play sbt plugin определяет следующие настройки:

fork in Test := true

Итак, при запуске тестов запускается другой jvm (без удаленной отладки).

Вам просто нужно добавить в свой build.sbt:

fork in Test := false 

Можно даже создать файл test.sbt, содержащий только эту строку, и игнорировать его из системы управления версиями.

Это должно использоваться только во время отладки. После этого, пожалуйста, вернитесь к поведению по умолчанию; или вы можете получить неожиданные результаты при запуске тестов несколько раз в одном сеансе sbt.