【问题标题】:Spock script not compiling automatically in Spring MVC project which is using Eclipse IDESpock 脚本未在使用 Eclipse IDE 的 Spring MVC 项目中自动编译
【发布时间】:2017-07-06 08:36:24
【问题描述】:

我正在开发一个基于 Spring 的 Web 项目(Eclipse 作为 IDE),我们希望在其中引入使用 Spock 的集成测试框架。本项目基于 Maven。为此,我安装了 Greclipse 插件并将现有项目转换为 groovy 性质。还配置了 Maven 以运行 src/test/groovy 文件夹中的测试类,并且一切正常,所有 spock 测试在运行“Maven 测试”阶段运行良好。配置构建路径以将 groovy 测试文件编译为目标/测试类。

当我使用 Run -> Run 配置运行 Spock 测试时,问题就来了。它使用运行配置与 Junit runner 一起运行文件,它从目标/测试类中获取已编译的测试类。每当我修改 Spock 测试脚本文件时,它不会自动生成类,Run with Run Configuration 总是选择旧的编译类。

如何强制脚本编译,这样我就不必总是需要 Maven 清理和 Maven 测试,来强制它编译和运行。

我在其他一些线程中发现将 Groovy 编译器选项修改为“启用脚本文件夹支持”,选中和取消选中也没有用。它不强制 Spock 脚本编译(也尝试在 Eclipse Preferences 全局 Groovy 编译器选项中启用相同的选项)

非常感谢任何帮助。

【问题讨论】:

    标签: eclipse spring groovy compilation spock


    【解决方案1】:

    Spock 测试作为扩展 Specification 的类实现。因此它们被视为任何其他 Groovy 类。

    如果在 Eclipse 中的“项目”→“自动构建”下启用,Eclipse 会在每次更改时自动编译类。因此,如果您在 Eclipse 中更改 Spock 测试,运行它应该始终使用最新的编译版本。

    要使自动编译正常工作,必须在 Eclipse 中正确配置源代码。通过 Eclipse 项目上的“配置构建路径...”检查“源”选项卡下的 src/test/groovy/ 文件夹配置是否正确。

    【讨论】:

    • 感谢您的回复。构建被自动设置为在项目上运行。并且还将 src/test/groovy/folder 添加到项目属性中的源路径中。但我仍然没有看到编译的类文件。还缺什么吗?
    • 我发现了问题并修复了它。我所指的项目在 .proejct 文件中没有 Javabuilder 设置。当我们使用 Maven 进行构建时,我无法捕捉到它。一旦我添加了 Javabuilder,eclipse 就可以在我每次修改文件时编译它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    相关资源
    最近更新 更多