0

可以有条件地打开或关闭特定的健身测试吗?

Fowler/Hodgson 术语中,我们使用“发布切换” - 即允许在我们的测试和专业环境中禁用更改直到准备好黄金时间的切换。我们不希望这些功能的故障影响到 pro 的发货,因此对这些测试的结果不感兴趣。从这个意义上说,CDP 管道一直将切换设置为“PRO”配置,以保持验收测试的快速和集中。那么如何让 Fitnesse 忽略与切换相关的测试呢?

我看到了这个相关的答案:如何在持续集成中运行的测试中设置功能切换?这表明该用户测试了切换的所有方面,但这对我们来说通常是不可能的 - 例如,假设由于 DI 或其他原因,某个功能需要重新启动应用程序才能更改切换(例如,因为该功能需要连接不同的 Web 控制器) - 这对fitnesse 来说是一件相当困难的事情。这会导致缓慢的测试,并且正在测试我们实际上不需要测试的功能(还)。

因此,我们希望能够开发功能(在切换后)和测试、夹具(标有相同的切换),并且当我们准备好启用它们时,轻弹它们以通过 CI 管道运行。就像是:

  1. 决定功能需要切换,因此创建一个 TOG123-change-api-behaviour
  2. 将切换添加到所有代码都可以看到的中央切换系统
  3. 在 CI 环境的配置中将切换设置为“false”
  4. 开发切换代码背后的功能和适应性测试
  5. 当准备好 CDP 设置为 true
  6. 通过测试后,运送给专业人士
  7. 及时..通过字面搜索 TOG123 并清理混乱来删除切换..

我没有看到一个好的答案是如何保护特定的fitnesse测试条件(即新测试将有一个when:TOG123.enabled,旧测试将有一个when:TOG123.disabled)。Fitnesse 似乎有点.. 对我来说很尴尬。标签是我要找的吗?套房似乎太宽泛了..

4

1 回答 1

1

根据您的描述标签似乎是您正在寻找的。它们允许您为新功能标记您的测试,并选择在您执行的运行中包含或排除这些测试。

附带说明:如果这些功能是真正的“切换”,即它们可以在生产中启用而不需要新版本,我建议测试切换的所有方面;否则您不知道启用切换是否实际上是一件好事/安全的事情。如果新功能预计不会“生产就绪”,因此不需要在部署前进行测试:为什么要将它们包含在您发布的产品版本中?在这种情况下,我建议您将这些新功能保留在一个单独的分支中,该分支尚未合并到 development/master。然后,您可以在相同的(或类似的,如果测试在不同的存储库中)维护/开发这些功能的测试。这可以防止生产中不应使用的复杂性/代码,并且还可以防止之后需要“清理混乱”:清理是分支的一部分。当分支被合并时,新功能被添加、测试并且现在过时的测试/代码被立即删除。当然,这确实需要基于分支运行/测试系统的能力,但这是您在进行持续交付时所具备的能力。

于 2017-02-14T19:47:25.203 回答