Как запустить тесты sbt для отладки, Когда debug отключен по умолчанию?
мне невероятно неудобно перезапускать sbt со специальными флагами, если я хочу запустить тесты (или основной) с включенной отладкой. Это также боль, если основной или тест обычно находится в раздвоенной JVM:
Как установить вилку в тесте, когда-JVM-debug задан в командной строке?
есть простой способ условно сделать run, test, test-quick или test-only и попросите включить отладку в раздвоенном процессе? например, с синтаксис как test-only -jdb
Я действительно не хочу писать свой собственный Tasks, чтобы сделать это... поддержание их будет кошмаром. Но я думаю, что это позволит синтаксис, как module/jdb:test-only
2 ответов
Я не думаю, что есть какая-либо простая функция, которая позволяет отлаживать из коробки.
как вы упомянули в списке sbt-dev, делая пользовательскую конфигурацию, как debug:testOnly звучит как хорошая стратегия.
в то время как Евгений точно упоминает, что мы могли бы предоставить debug:testOnly из коробки, следующее должно помочь вам:
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
)
это должно позволить вам делать dtest:testOnly *, dtest:run и dtest:test on myproject. Раздвоенная JVM (Примечание fork in DebugTest := true) будет использовать все debugging options вы указали.