如何使用groovy执行spock规范并生成JUnitXML文件

如何使用groovy执行spock规范并生成JUnitXML文件,groovy,command-line,spock,Groovy,Command Line,Spock,我有一个Spock规范,可以使用groovy可执行文件直接在命令行上执行。这是因为规范类将委托给sputnik测试运行程序,后者将委托给JUnit4运行程序 我收到的输出是文本结果。相反,我希望接收一个JUnitXML结果文件。我正在尝试使用直接脚本执行,并避免使用maven和gradle,因为我希望这是轻量级的 有人能告诉我如何配置系统以提供此结果吗?Spock不会生成这样的报告,它的Surefire在maven world(或其gradle对应产品)中运行测试、收集结果并生成报告。我想你说的

我有一个Spock规范,可以使用
groovy
可执行文件直接在命令行上执行。这是因为规范类将委托给
sputnik
测试运行程序,后者将委托给JUnit4运行程序

我收到的输出是文本结果。相反,我希望接收一个JUnitXML结果文件。我正在尝试使用直接脚本执行,并避免使用maven和gradle,因为我希望这是轻量级的


有人能告诉我如何配置系统以提供此结果吗?

Spock不会生成这样的报告,它的Surefire在maven world(或其gradle对应产品)中运行测试、收集结果并生成报告。我想你说的是target/surefire报告文件夹

现在有两种方法:

  • 直接运行maven的surefire插件。类似于
    mvnsurefire:test的东西不会编译任何东西(假设您已经编译了代码和测试),只会运行测试。您还可以筛选以运行一个特定的测试/指定通配符,请阅读surefire插件文档

  • 斯波克有一个听众的概念。这些监听器在测试生命周期中被调用,您可以提供钩子自己收集结果,当测试完成时(无论成功还是失败,您都会有一个钩子)-创建一个包含信息的文件,它将成为您的报告)

  • 有些项目正是以这种方式工作的,尽管它们不会以surefire的形式生成XML:

    我知道spoc测试适用于JUnit4测试用例。因此,它们将有一个符合Junit中测试的有限接口。因此,JUnit4运行程序应该能够以XML格式执行和报告执行情况。请注意,我熟悉在Maven下使用Jupiter执行Spock测试的方法。我只是不想在这个案例中增加一个组件。您可以在此处看到基于需求的自适应: