Launched gradle with a test with the --no-daemon parameter but the daemon is launched anyway
我正在尝试调试一些编写的单元测试,但是gradle守护程序似乎总是启动,而忽略了我设置的任何选项。
使用Mac OS X 10.9.5,Java 1.7,Gradle 2.2.1和robolectric-gradle-plugin 0.14.1
通过以下方式启动gradle:
1 2 | GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006" ./gradlew test --no-daemon -Dorg.gradle.debug=true |
使以下行出现
1 | To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.2.1/userguid.... |
我还尝试在build.gradle中将-Xdebug和Xrunjdwp设置为jvmArgs。
什么都没有发生,但是如果我添加-d并重新运行,事实证明该守护程序已启动并正在端口5005上等待调试器:http://pastebin.com/TqaXubmr
最后,如果我随后启动连接到端口5005的调试器,则测试将运行,但没有命中任何断点。
gradle.properties为空,我还没有设置org.gradle.jvmargs。
您可能已经在gradle.properties中配置了内存设置?这些可能会迫使gradle启动新的jvm,因为这些设置无法动态应用。
请记住,单元测试始终在单独的jvm中执行。调试gradle执行的测试的最简单方法是运行
1 | >gradle :test --debug-jvm |
这将自动将您的测试任务配置为在启用调试的情况下运行。