在 Intellij IDEA 中调试 Spock 测试

Posted

技术标签:

【中文标题】在 Intellij IDEA 中调试 Spock 测试【英文标题】:Debug Spock tests in Intellij IDEA 【发布时间】:2012-05-19 20:00:37 【问题描述】:

我正在通过“右键单击 -> 运行 -> 测试名称”运行 Spock 测试。如何在调试模式下运行测试?调试图标运行测试但不会在断点处停止

【问题讨论】:

【参考方案1】:

通常这可以正常工作。如果不是,则可能是您的 IDE 和 Groovy 或 Grails 有问题。我建议尝试使用最新版本的 IDEA。

【讨论】:

这如何回答这个问题?这真的更像是一个评论。 这是一种帮助某人解决模糊问题的尝试。由于提供的信息很少,很难做得比这更好。最好在邮件列表或支持论坛上提出这个问题。 它通常不起作用。运行 spock 测试时,调试器不会在断点处停止。 通常对我来说效果很好(尽管我不经常在规范中设置断点)。不过,调试 Groovy 并不总是像调试 Java 那样顺利。【参考方案2】:

我相信这可能是元类在 groovy 中如何工作的一个错误。我发现如果断点不在控制结构或闭包上,它将起作用。我在 intellij 论坛上找到了解决方法:

http://youtrack.jetbrains.com/issue/IDEA-82741

【讨论】:

我做不到。只需在测试开始时添加行 Integer.metaClass.xxx = 对您有用吗?【参考方案3】:

我遇到了“相同”的问题(不确定它是否与 OP 的原因相同)

在我这边,它在某种程度上与 gradle 和 IntelliJ IDEA 相关。

在执行和调试 groovy 测试时,IDEA 默认使用本地系统的 gradle 构建系统。

但是有一个选项可以在 IDEA 的构建系统中“本地”运行测试。

我已经尝试了基于 IDEA 的构建系统设置来运行 groovy 测试,然后它就可以工作了。

设置可以在Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle下找到

【讨论】:

【参考方案4】:

也许你应该使用 RightClick -> Debug (Not Run)

【讨论】:

以上是关于在 Intellij IDEA 中调试 Spock 测试的主要内容,如果未能解决你的问题,请参考以下文章

在 Intellij Idea 中运行 grails 2.1.3 测试:Spock 测试中出现奇怪错误:无法添加域类 [class x.y.Z]。它不是域

深入学习 Intellij IDEA 调试技巧

在 AppCode 中调试 Intellij Idea 插件

在IntelliJ IDEA中远程断点调试tomcat

在 Intellij IDEA 中调试 Android 小部件

IntelliJ IDEA 中的 JSP 调试