当前位置: 首页 > 知识库问答 >
问题:

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

贺正祥
2023-03-14

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

sbt -jvm-debug 9999

然后在我的构建中:

fork in Test := { 
  //find a key that lets me know if debugging in set up
  !isDebugging.value
}

共有2个答案

毕泽宇
2023-03-14

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

干杯

苏宜人
2023-03-14

在SBT中通过系统属性指定flywayUrl应该会有所帮助。

将以下内容添加到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启动库。bash以适应在设置xdebug时添加xdebug的更改。

 类似资料:
  • 问题内容: 可以在调用“ java jar jar_name.jar”时指定要使用的JVM。我的机器上安装了两个JVM。我无法更改JAVA_HOME,因为它可能会破坏所有准备就绪的代码。 亲切的问候 史提芬 问题答案: 是的-仅显式提供java.exe的路径。例如: 对于正在运行的命令外壳,最简单的方法是: 例如,这是一个完整的会话,显示我的默认JVM,然后是路径的更改,然后是新的: 但是,这不会

  • 问题内容: 如何从命令行在Node.js上运行Jasmine测试?我已经通过npm安装了jasmine- node并编写了一些测试。我想在目录中运行测试并在终端中获取结果,这可能吗? 问题答案: 编辑 由于不再维护该软件包,因此这似乎不再是当前的最佳答案。请参阅下面的答案 你可以这样做 从您的测试目录 这会将茉莉花安装到../node_modules/jasmine-node 然后 从我的演示中做

  • 问题内容: 我知道如何使用PyCharm(工具->运行manage.py Task)运行命令,但是我也想调试它们,包括我的命令和第三方应用程序的命令。 问题答案: 您可以通过在“运行/调试配置”菜单上创建自定义Django服务器条目,在PyCharm中调试自定义Django admin / management命令: 点击。 单击加号,然后选择。 根据需要填写,清除和字段,选中并在复选框右侧输入命

  • 我的Gradle项目使用了KotlinDSL和JUnit5/Jupiter(以及Kotlin作为编程语言),Gradle似乎没有正确地接受我的任何测试。当我在命令行上运行Gradle测试时,它告诉我 不管我怎么尝试。然而,在我的IDE中,我可以轻松地运行项目中的每个单个测试类,而不会出现任何问题。

  • 问题内容: 我想向正在处理的类中添加一些log.debug语句,并且希望在运行测试时在输出中看到它。我想在命令行上覆盖log4j属性,如下所示: 我经常做这种事情。我特别只对在命令行上传递它的方式感兴趣。我知道如何使用配置文件进行操作,但这不适合我的工作流程。 问题答案: log4j不直接支持此功能。 由于您不希望使用配置文件,因此很可能使用编程配置。我建议您考虑扫描所有系统属性,并根据此内容显式

  • 并将我的文件保存如下: Runner类: 把这个放到我的大楼里。格雷德尔: 但我得到的回应是: 但是,我不能看到我的测试是否通过。我做错了什么? 分级版本:2.14.1