【问题标题】:ChefSpec and Test KitchenChefSpec 和测试厨房
【发布时间】:2014-05-24 08:29:42
【问题描述】:

我正在调查 ChefSpec 是否报告 (有报道) 和 Test Kitchen 报告 可以生成为 junit 格式,以便 Jenkins 对其进行解析以发布结果。 或者,如果有其他友好的方式,这些结果可以由 Jenkins 发布。

谢谢。

编辑 1: 抱歉,如果我解释不正确,但我知道 chefspec 用于单元测试,而 test kitchen 用于集成测试。 我在这个问题中的意思是如何以Jenkins可以解析的格式(例如junit格式)获取测试结果报告(对于chefspec和另一个手动测试厨房)。

【问题讨论】:

  • 我还没有看到与测试厨房的连接。 AFAIK 你不需要 t-k 来运行 chefspec,反之亦然。

标签: chef-infra test-kitchen chefspec


【解决方案1】:

您混淆了单元测试和集成测试。 ChefSpec 是一个单元测试框架。它不执行真正的收敛并在内存中运行所有内容。 Test Kitchen 是一个集成框架。它使用虚拟机在真机上实际运行 Chef。

它们是构建的不同部分。您不会从 Test Kitchen 运行 ChefSpec,反之亦然。

就从 ChefSpec 报告中获得机器可解析的输出而言,这是我要做的事情的清单。不过,我想要比 JSON 更灵活的东西,并且我希望用户也能够提供自己的模板。

来源:

  • 我写了 ChefSpec
  • 我正在测试厨房核心

【讨论】:

  • 嘿 @sethvargo,rspec_junit_formatter gem 允许 rpsec 使用参数“--format RspecJunitFormatter”以 xunit 格式格式化其输出。我不确定这是否适用于 chefspec 代码覆盖功能。我还没有尝试过这个功能。很快,很快。 :)
  • 非常感谢您的回复。是的,我尝试了该功能 --format RspecJunitFormatter 并且可以与 rspec unittest 一起使用。但我还没有想出如何为 Coverage 获得一个 Jenkins 友好的解析。您在 Coverage 方面取得了成功吗?谢谢。
【解决方案2】:

虽然似乎有这样的功能,至少可以将其输出为 JSON,但该功能似乎已被删除。见discussion here

那么,例如,我怎样才能获得覆盖文件报告以向 Jenkins 提出?

您可以将输出解析为表格。我正在努力为用户提供“自定义”格式化程序,但还没有提出好的解决方案。

【讨论】: