groovy - 如何使用 groovy 执行 spock 规范并生成 junit xml 文件
问题描述
我有一个 Spock 规范,可以使用groovy
可执行文件直接在命令行上执行。这是有效的,因为规范类委托给了sputnik
测试运行器,而测试运行器又委托给了 junit 4 运行器。
我收到的输出是文本结果。相反,我想收到一个 JUnit xml 结果文件。我正在尝试使用直接脚本执行并避免使用 maven 和 gradle,因为我希望它是轻量级的。
有人可以让我知道如何配置系统以提供此结果吗?
解决方案
Spock 不会生成这样的报告,它在 Maven 世界中的 Surefire(或其 gradle 对应物)运行测试、收集结果并生成报告。我假设您正在谈论 target/surefire-reports 文件夹。
现在有两种方法:
直接运行maven的surefire插件。类似的东西
mvn surefire:test
不会编译任何东西(假设你已经编译了代码和测试),只会运行测试。您还可以过滤以运行一个特定的测试/指定通配符,阅读 surefire 插件文档。Spock 有一个 Listeners 的概念。这些侦听器在测试生命周期期间被调用,您可以提供钩子来自己收集结果,并且在测试完成时(无论成功还是失败 - 您都会有一个钩子) - 创建一个包含信息的文件,它将是您的报告)。
有些项目正是以这种方式工作的,尽管它们不会以万无一失的形式生成 XML: spock-reports damage-control
推荐阅读
- c# - 使用特殊字符 %3C 重定向
- angularjs - 我在启动新部署的服务器时出错
- asp.net-core - .NET Core Web API、JWT 和 Swagger - 401 显示为未记录而不是未授权
- php - 使用 str_replace 自己的编码系统
- kframework - 无法计算最少种类的术语(其中术语是列表)
- ios - 在所有设备上设置本地通知 Swift
- javascript - 在方法之间来回切换
- c# - 是否有可能使这两种方法通用或至少分开?
- excel - VBA 运行时错误“1004”:对象“_Worksheet”的方法“范围”
- python - 如何从 Pandas 中的这个数据集创建这个特定的表?