可以有条件地打开或关闭特定的fitnesse测试吗?
在Fowler/Hodgson terminology中,我们正在使用“Release Toggles” - 即切换允许在我们的测试和专业环境中禁用更改,直到准备好黄金时间。我们不希望这些功能中的故障影响到pro的发货,因此对这些测试的结果不感兴趣。从这个意义上讲,CDP管道将切换设置为“PRO”配置,以保持验收测试的快速和集中。那么如何让fitnesse忽略与切换相关的测试?
我看到了相关的答案:How should feature toggles be set in tests run in continuous integration?表示此用户测试了切换的所有方面,但这对我们来说通常是不可能的 - 例如想象一个功能需要重新启动应用程序来更改由于DI或其他任何原因导致的切换(例如,因为该功能需要连接不同的Web控制器) - 这对于fitnesse来说是一件非常困难的事情..使得测试速度慢并且正在测试功能我们实际上并不需要测试(还)。
因此,我们希望能够开发功能(在切换后面)和测试,灯具(标有相同的切换),当我们准备启用它们时,将它们轻弹以运行CI管道。类似的东西:
我看不出一个好的答案是如何用条件保护特定的fitnesse测试(即新测试将有一个时间:TOG123.enabled和旧测试将有一个时间:TOG123.disabled)。 Fitnesse对我来说似乎有些尴尬。标签是我正在寻找的吗?套房看起来太宽了......
答案 0 :(得分:1)
根据您的描述标签似乎是您正在寻找的。它们允许您标记新功能的测试,并选择在您执行的运行中包含或排除这些测试。
在旁注:如果功能是真正的'切换',即它们可以在生产中启用而无需新版本,我建议测试切换的所有方面;否则你不知道启用切换是否真的是一个好/安全的事情。如果新功能预计不会“生产就绪”,因此在部署之前不保证测试:为什么要将它们包含在您发布的产品版本中?在这种情况下,我建议您将这些新功能保留在一个单独的分支中,该分支尚未合并到开发/主站。然后,您可以在相同的(或类似的,如果测试位于不同的存储库中)维护/开发这些功能的测试。这可以防止生产中不应该使用的复杂性/代码,并且还可以防止以后需要“清理混乱”:清理是分支的一部分。合并分支时,会添加,测试新功能,并立即删除现已过时的测试/代码。这当然需要能够根据分支运行/测试您的系统,但这是您在持续交付时所拥有的。