用于使用SBT自定义测试配置的javaOptions

用于使用SBT自定义测试配置的javaOptions,sbt,Sbt,我只想在使用IntegrationDebugconfig时挂起分叉vm并等待来自外部调试器的连接 参考中的“共享源”部分,我提供了以下配置: import sbt.Keys._ lazy val IntegrationDebug = config("itd") extend (IntegrationTest) val scalaTestV = "3.0.4" lazy val root = project.in(file(".")) .configs( IntegrationT

我只想在使用
IntegrationDebug
config时挂起分叉vm并等待来自外部调试器的连接

参考中的“共享源”部分,我提供了以下配置:

import sbt.Keys._

lazy val IntegrationDebug = config("itd") extend (IntegrationTest)

val scalaTestV = "3.0.4"

lazy val root = project.in(file("."))
  .configs(
    IntegrationTest,
    IntegrationDebug
  )
  .settings(
    Defaults.itSettings,
    inConfig(IntegrationDebug)(Defaults.testTasks),
    libraryDependencies ++= Seq(
      "org.scalactic" %% "scalactic" % scalaTestV,
      "org.scalatest" %% "scalatest" % scalaTestV,
    ),
    fork in IntegrationTest := true,
    javaOptions in IntegrationDebug += "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8123",
  )
但是,它没有按预期工作:

it:test -> vm not suspended (expected)
itd:test -> vm not suspended (unexpected!!)
如果我将
javaOptions
的范围更改为
IntegrationTest
,即

 ...
 javaOptions in IntegrationTest += "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8123",
 ...
然后

有没有办法让它像这样工作:

it:test -> vm not suspended
itd:test -> vm suspended

好的,如果我没弄错的话,我可能已经找到了解决问题的方法

更换线路:

    javaOptions in IntegrationDebug += "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8123",

应该做到这一点(在这种情况下,VM仅针对
itd:test
命令挂起)


我知道这已经有很长时间了,但是有人可能会觉得这很有用。我几乎遇到了同样的问题,这就是我解决问题的原因。

好吧,如果我没有弄错的话,我可能已经找到了解决问题的方法

更换线路:

    javaOptions in IntegrationDebug += "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8123",

应该做到这一点(在这种情况下,VM仅针对
itd:test
命令挂起)


我知道这已经有很长时间了,但是有人可能会觉得这很有用。我几乎遇到了同样的问题,这就是我解决问题的原因。

你解决过这个问题吗?如果你做到了呢?你解决过这个问题吗?如果你做到了呢?
  testOptions in IntegrationDebug += Tests.Argument("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8123")