Scala 默认情况下禁用调试时,如何运行sbt测试进行调试?
如果我想在启用调试的情况下运行测试(或主测试),我发现必须使用特殊标志重新启动sbt非常尴尬。如果主或测试通常位于分叉的JVM中,这也是一个难题: 是否有任何简单方法可以有条件地执行Scala 默认情况下禁用调试时,如何运行sbt测试进行调试?,scala,debugging,sbt,Scala,Debugging,Sbt,如果我想在启用调试的情况下运行测试(或主测试),我发现必须使用特殊标志重新启动sbt非常尴尬。如果主或测试通常位于分叉的JVM中,这也是一个难题: 是否有任何简单方法可以有条件地执行运行、测试、快速测试或仅测试,并要求在分叉过程中启用调试?e、 g.使用类似仅测试-jdb 我真的不想写我自己的任务s来完成这项任务。。。维护它们将是一场噩梦。但是我想这将允许像module/jdb:testonly这样的语法我不认为有任何简单的特性支持开箱即用的调试 ,进行自定义配置,如debug:testOnl
运行
、测试
、快速测试
或仅测试
,并要求在分叉过程中启用调试?e、 g.使用类似仅测试-jdb
我真的不想写我自己的
任务
s来完成这项任务。。。维护它们将是一场噩梦。但是我想这将允许像module/jdb:testonly这样的语法
我不认为有任何简单的特性支持开箱即用的调试
,进行自定义配置,如
debug:testOnly
听起来是一个不错的策略。虽然Eugene准确地提到我们可以提供现成的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
)
这应该允许您在
myproject
上执行dtest:testOnly*
、dtest:run
和dtest:test
。分叉JVM(注意fork-in-DebugTest:=true
)将使用您提供的任何调试选项。很酷,谢谢!我写了这样的东西,所以这是有意义的。