Как запустить тесты sbt для отладки, Когда debug отключен по умолчанию?
мне невероятно неудобно перезапускать sbt со специальными флагами, если я хочу запустить тесты (или основной) с включенной отладкой. Это также боль, если основной или тест обычно находится в раздвоенной JVM:
Как установить вилку в тесте, когда-JVM-debug задан в командной строке?
есть простой способ условно сделать run
, test
, test-quick
или test-only
и попросите включить отладку в раздвоенном процессе? например, с синтаксис как test-only -jdb
Я действительно не хочу писать свой собственный Task
s, чтобы сделать это... поддержание их будет кошмаром. Но я думаю, что это позволит синтаксис, как 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
вы указали.