使用带有–no-daemon参数的测试启动了gradle,但是仍然启动了守护程序

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

这将自动将您的测试任务配置为在启用调试的情况下运行。