Spock 脚本无法在使用 Eclipse IDE 的 Spring MVC 项目中自动编译

Spock script not compiling automatically in Spring MVC project which is using Eclipse IDE

我正在开发一个基于 Spring 的 Web 项目(Eclipse 为 IDE),我们想在其中引入使用 Spock 的集成测试框架。这个项目是基于 Maven 的。为此,我安装了 Greclipse 插件并将现有项目转换为 groovy 性质。还将 Maven 配置为 运行 测试 classes 在 src/test/groovy 文件夹中,一切正常,所有 spock 测试 运行 与 运行 "Maven test"阶段。配置构建路径以将 groovy 测试文件编译为 target/test-classes。

当我 运行 Spock 使用 运行 -> 运行 配置进行测试时,问题就来了。它 运行s 文件与 Junit 运行ner 使用 运行 配置,它正在从 target/test-classes 中获取编译测试 class。每当我修改 Spock 测试脚本文件时,它不会自动生成 classes,运行 和 运行 配置总是选择旧编译的 class.

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

我发现在其他一些线程中讨论将 Groovy 编译器选项修改为 "Enable script folder Support",检查和取消检查都没有用。它不强制编译 Spock 脚本(也尝试在 Eclipse 首选项全局 Groovy 编译器选项中启用相同的选项)

非常感谢任何帮助。

Spock 测试作为 class 扩展 Specification 实现。所以他们被当作任何其他人对待 Groovy class.

如果在 "Project" 下的 Eclipse 中启用 → "Build Automatically",Eclipse 会在每次更改时自动编译 classes。因此,如果您在 Eclipse 中更改 Spock 测试,运行 它应该始终使用最新的编译版本。

要使自动编译正常工作,必须在 Eclipse 中正确配置源。在 Eclipse 项目上通过 "Configure Build Path..." 检查 "Source" 选项卡下的 src/test/groovy/ 文件夹是否配置正确。