2016-05-10 3 views
2

Ich führe den folgenden Befehl im Terminal sbt -jvm-debug 9999 und starten Sie eine Remote-Debug-Konfiguration mit Standardwerten in Intellij 15.0.4-1. Als nächstes führe ich die sbt-Aufgabe run aus und Haltepunkte funktionieren wie erwartet. Wenn ich die test Aufgabe statt des Debuggens ausführe, arbeite nicht mehr, obwohl der gleiche Code ausgeführt wird.SBT remote debugging funktioniert in intelli, aber nicht bei der Ausführung von Tests

Mit play-scala Aktivator Saatgut mit Play Framework 2.4. Tests sind in Spec2 geschrieben. Hat jemand eine Idee, was ich falsch machen könnte?

Hier ist mein Code:

Klasse DebugTest.scala

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

Klasse 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() 
    } 
    } 
} 

Datei build.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 

Datei test.sbt

fork in test := false 

Antwort

4

Wiedergabe sbt Plugin definiert die folgende Einstellung:

fork in Test := true 

Also, wenn Sie Ihre Tests starten, eine andere JVM gestartet (ohne Remote-Debugging).

Sie müssen nur in Ihrem build.sbt hinzufügen:

fork in Test := false 

Sie sogar eine test.sbt Datei enthält nur die Zeile schaffen könnte und aus Quellcodeverwaltung ignorieren.

Dies sollte nur während des Debuggens verwendet werden. Danach kehren Sie bitte zum Standardverhalten zurück. oder Sie können unerwartete Ergebnisse erhalten, wenn Sie mehrere Tests in derselben sbt-Sitzung starten.

+0

Meine Frage aktualisiert. Ich habe Ihren Vorschlag versucht, eine zusätzliche test.sbt hinzuzufügen, aber das Debuggen funktioniert nicht. –

+0

Mein Fehler war, dass ich "Test" anstelle von "Test" schrieb. Alles funktioniert jetzt! Ich danke dir sehr. –

Verwandte Themen