FitNesse:嵌套SuiteSetUps的替代方案,可保持顺序

问题描述 投票:0回答:1

我们有一个FitNesse / HSAC项目,其中包含大量的测试,其结构基本上如下:

  • TopSuite
    • SubSuite1
      • [测试]
    • SubSuite2
      • [测试]
      • SuiteSetUp
    • SubSuite3
      • [测试]
    • SuiteSetUp

SubSuite2的SuiteSetUp使用JsonHttpTest执行特别慢的GET请求,并且SubSuite2中的所有测试都会检查该请求的响应。

我们选择在SuiteSetUp中执行请求,因为在所有这三种情况下,FitNesse都会在相关测试之前立即运行它:

  1. [分别运行SubSuite2的测试之一时
  2. 当作为套件运行SubSuite2时
  3. 作为套件运行TopSuite时

但是,像这样嵌套SuiteSetUps会更改FitNesse issue #131中报告的测试执行顺序,该顺序已作为WONTFIX关闭。

在我们的情况下,这种顺序更改是不可取的,因为它会使测试报告难以阅读/浏览,并使我们和我们为其编写测试的客户感到困惑。

无论我们如何运行测试,我们都希望在最多一次执行慢速请求的同时保持执行顺序。

我想出的可能解决方案是:

  • 将嵌套的SuiteSetUpUp替换为一个测试,该测试的名称要在该套件中的所有其他测试之前进行排序。这样,它可以在适当的时候执行,而不会更改执行顺序,但是仅在情况2和3中执行]
  • 扩展JsonHttpTest,使其能够缓存响应,以便该请求仅实际执行一次。这在所有三种情况下都有效,但是需要对Java代码进行一些更改,这些更改可能会在更新HSAC时中断*
  • 注意,将缓慢的GET请求移至全局SuiteSetUp是不希望的,因为仅在SubSuite2外部运行测试时也会执行此请求>
  • 请注意,将SubSuite2的所有测试都合并在一个测试中也是不理想的,因为在此套件中执行的检查数量足够大,以至于使这样的测试变得笨拙且缓慢”]
  • 我不禁感到,应该有一种方法可以在没有Java编码的情况下解决所有这三种情况。

    我进行了广泛的Google搜索,但找不到任何合适的解决方案。

我已经花了数小时来解决这个问题,所以从外部角度考虑是最受欢迎的:)

Note

:另外,我们想做| show | response |。某个地方,以便我们在发生错误时进行调试,但是响应非常大,以至于显示它需要花费FitNesse数秒的时间。

[仅在SuiteSetUp中显示响应很容易找到,同时最大程度地减少了延迟,而此解决方案使在哪里显示响应变得不那么琐碎。

[我们有一个FitNesse / HSAC项目,其中包含大量的测试,其结构基本上如下:TopSuite SubSuite1 [测试] SubSuite2 [测试] SuiteSetUp SubSuite3 [测试] SuiteSetUp ...]]

在FitNesse 20190628(及更高版本)中应该是可能的,并将!define ALL_UNCLE_SUITE_SETUPS {true}添加到顶级套件中>]

fitnesse
1个回答
0
投票

在FitNesse 20190628(及更高版本)中应该是可能的,并将!define ALL_UNCLE_SUITE_SETUPS {true}添加到顶级套件中>]

© www.soinside.com 2019 - 2024. All rights reserved.