Sbt 在命令行上给出-jvm调试时,如何在测试中设置fork?

Sbt 在命令行上给出-jvm调试时,如何在测试中设置fork?,sbt,Sbt,如果项目在调试模式下运行,是否有方法有条件地禁用分叉: sbt -jvm-debug 9999 然后在我的构建中: fork in Test := { //find a key that lets me know if debugging in set up !isDebugging.value } 应该会有帮助的 将以下内容添加到build.sbt: lazy val isDebugging = settingKey[Boolean]("true when xdebug is t

如果项目在调试模式下运行,是否有方法有条件地禁用分叉:

sbt -jvm-debug 9999
然后在我的构建中:

fork in Test := { 
  //find a key that lets me know if debugging in set up
  !isDebugging.value
}
应该会有帮助的

将以下内容添加到
build.sbt

lazy val isDebugging = settingKey[Boolean]("true when xdebug is true; false otherwise")

isDebugging := System.getProperty("xdebug") == "true"

fork in Test := !isDebugging.value
当您执行
sbt-Dxdebug=true
时,它会给您想要的


顺便说一句,我在SBT源代码中没有看到对jvm调试的引用,但它确实在我用来启动它的shell脚本中。可能您必须更改
sbt launch lib.bash
,以适应在设置
-xdebug
时添加
xdebug
的更改。

Jacek的建议指向正确的方向,但对我来说不起作用(甚至根本不起作用?)
System.getProperty
基本上无法检索sbt的Bash脚本设置的
-Xdebug
标志-在调用
System.getProperties
时,
-Xdebug
未在此处列出,类似地,任何其他非标准JVM属性(例如
-Xmx

对我有效的是:

lazy val isDebug = settingKey[Boolean]("true when -Xdebug is set, false otherwise")

isDebug := ManagementFactory.getRuntimeMXBean.getInputArguments.contains("-Xdebug")

fork in Test := !isDebug.value

干杯

jvm调试:*文档:*impl:这对我不起作用。我使用System.getEnv(“usedebug”)=“true”,并在my.bashrc中添加了一个
别名sbtd=“usedebug=true sbt-jvm debug 5005”
,以启动调试器并设置env,现在在使用该命令时它不会分叉