2014-11-10 4 views
8

Ich finde es unglaublich peinlich, sbt mit speziellen Flags neu zu starten, wenn ich die Tests (oder eine Hauptfunktion) mit aktiviertem Debug ausführen möchte. Es ist auch ein Schmerz, wenn der Haupt- oder Test in der Regel in einem gegabelten JVM ist:Wie sbt Tests zum Debuggen ausführen, wenn Debug standardmäßig deaktiviert ist?

How to set fork in Test when -jvm-debug given on command line?

Gibt es eine einfache Weise bedingt eine run tun, test, test-quick oder test-only und bitten für das Debuggen aktiviert werden im Gabelungsprozess? z.B. mit Syntax wie test-only -jdb

will ich nicht wirklich habe meine eigene Task s zu schreiben, dies zu tun ... Beibehaltung ein Alptraum sein wird. Aber ich denke, das würde Syntax wie module/jdb:test-only

Antwort

3

erlauben Ich glaube nicht, dass es eine einfache Funktion, die Debugging out of the Box ermöglicht.

As you mentioned on sbt-dev list, so dass eine benutzerdefinierte Konfiguration wie debug:testOnly klingt wie eine gute Strategie.

4

Während Eugene genau erwähnt, dass wir debug:testOnly aus der Box zur Verfügung stellen könnte, sollte die folgende helfen Ihnen aus:

val DebugTest = config("dtest") extend Test 

lazy val myproject = 
    project.configs(DebugTest). 
    settings(inConfig(DebugTest)(Defaults.testSettings):_*). 
    settings(
    fork in DebugTest := true, 
    javaOptions in DebugTest += "debugging options", 
    definedTests in DebugTest := (definedTests in Test).value 
) 

Diese Sie dtest:testOnly *, dtest:run und dtest:test auf myproject zu tun erlauben sollte. Die gegabelte JVM (Anmerkung fork in DebugTest := true) verwendet das von Ihnen bereitgestellte debugging options.

+0

cool, danke! Ich habe so etwas in https://github.com/fommil/lions-share/blob/master/sbt/src/main/scala/LionPlugin.scala geschrieben, das macht also Sinn. – fommil

Verwandte Themen