【问题标题】:How can I execute a spock Specification using groovy and produce junit xml file如何使用 groovy 执行 spock 规范并生成 junit xml 文件
【发布时间】:2019-12-10 02:29:02
【问题描述】:

我有一个 Spock 规范,我可以使用 groovy 可执行文件直接在命令行上执行它。这是有效的,因为规范类委托给 sputnik 测试运行器,后者委托给 junit 4 运行器。

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

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

【问题讨论】:

    标签: groovy command-line spock


    【解决方案1】:

    Spock 不会生成这样的报告,它在 Maven 世界中的 Surefire(或其 gradle 对应物)运行测试、收集结果并生成报告。我假设您说的是 target/surefire-reports 文件夹。

    现在有两种方法:

    1. 直接运行maven的surefire插件。像mvn surefire:test 这样的东西不会编译任何东西(假设你已经编译了代码和测试),只会运行测试。您还可以过滤以运行一项特定的测试/指定通配符,阅读万能插件文档。

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

    有些项目正是以这种方式工作的,尽管它们不会以万无一失的形式生成 XML: spock-reports damage-control

    【讨论】:

    • 我了解 spoc 测试适用于 JUnit 4 测试用例。因此,它们将具有符合 Junit 测试的有限接口。因此,JUnit4 运行程序应该能够执行并报告 XML 中的执行情况。请注意,我熟悉在 Maven 下使用 Jupiter 执行 Spock 测试的方法。我只是不想为这种情况添加额外的组件。您可以在此处查看基于需求的调整:github.com/groovy/groovy-core/blob/master/subprojects/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2018-11-05
    相关资源
    最近更新 更多