gpt4 book ai didi

java - 正在运行的调试测试

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:43 27 4
gpt4 key购买 nike

我在尝试调试在 Play 中失败的测试时遇到问题。

一开始我没法让它打断点,结果是测试时 fork 了一个新的JVM导致的,所以我发现我需要添加:

javaOptions in Test ++= Seq(
"-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998"
)

build.sbt 文件。

现在它在我启动调试器时遇到了断点(我使用的是 IntelliJ),但问题是它不允许我在开始测试之前启动调试器。

如果我使用 play debug 然后开始 Play 并打开套接字 (9999) 然后我可以启动调试器然后在 Play 控制台中启动我的应用程序(使用运行),但我可以'对测试做同样的事情..
一旦我使用 play test 测试就会开始,所以我必须在测试开始运行后启动调试器。

有什么办法解决这个问题吗?
谢谢!

最佳答案

我就是这样做的,希望对其他人有所帮助。

更改 build.sbt 或 build.scala 以删除 fork 每个测试的默认选项。添加行 Keys.fork in (Test) := false

val main = play.Project(appName, appVersion, appDependencies).settings(
resolvers += Resolver.sonatypeRepo("snapshots"),
resolvers += Resolver.sonatypeRepo("releases"),
Keys.fork in (Test) := false
)

我使用以下命令开始我的游戏 session (我现在正在使用激活器),我将其存储为别名。

'JAVA_HOME=`/usr/libexec/java_home -v 1.7`; JAVA_OPTS="-Xms1g -Xloggc:gc.log -verbose:gc -XX:+PrintGCDateStamps -server -Xmx2g -Dhttps.port=9443" activator -jvm-debug 9999'

这样您就可以在 Debug模式下开始游戏并将想法附加到远程服务器。在 intelliJ 中你添加

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999

并在上面的例子中设置端口 localhost 9999

我喜欢这样做的原因是您启动 Play 服务器一次并将 ide 附加到远程服务器。然后您可以通过控制台运行测试,它会命中您的断点,无需重新启动并为每个测试附加 ide。

关于java - 正在运行的调试测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23390237/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com