2014-11-10 8 views
8

Uważam za niezwykle niewygodne, aby ponownie uruchomić sbt ze specjalnymi flagami, jeśli chcę uruchomić testy (lub główną) z włączonym debugowaniem. Jest to także ból, jeśli główny lub test jest zazwyczaj w rozwidloną JVM:Jak uruchomić testy sbt do debugowania, gdy debugowanie jest domyślnie wyłączone?

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

Czy istnieje prosty sposób warunkowo zrobić run, test, test-quick lub test-only i poprosić o debugowania włączonego w rozwidlonym procesie? na przykład ze składnią taką jak test-only -jdb

Naprawdę nie chcę pisać własnych Task s, aby to zrobić ... utrzymanie ich będzie koszmarem. Ale domyślam się, że to pozwoliłoby składni jak module/jdb:test-only

Odpowiedz

3

Nie sądzę, że jest jakaś prosta funkcja, która umożliwia debugowanie po wyjęciu z pudełka.

As you mentioned on sbt-dev list, tworzenie niestandardowej konfiguracji, takiej jak debug:testOnly, brzmi jak dobra strategia.

4

Choć Eugene dokładnie wspomina, że ​​możemy zapewnić debug:testOnly po wyjęciu z pudełka, co następuje powinno pomóc:

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 
) 

To powinno pozwolić Ci zrobić dtest:testOnly *, dtest:run i dtest:test na myproject. Rozwidlona JVM (notatka fork in DebugTest := true) użyje podanego przez Ciebie debugging options.

+0

fajne, dzięki! Napisałem coś takiego na https://github.com/fommil/lions-share/blob/master/sbt/src/main/scala/LionPlugin.scala, więc ma to sens. – fommil

Powiązane problemy