如何设置允许多个“SuiteSetUp”的FitNesse套件层次结构?

时间:2012-05-15 12:18:27

标签: testing fitnesse

我目前的套件有以下结构:

  • OuterSuite
    • SuiteSetUp
    • InnerSuite1
      • SuiteSetUp
      • 测试1
      • 的Test2
      • Test3的
      • SuiteTearDown
    • InnerSuite2
      • SuiteSetUp
      • 测试1
      • 的Test2
      • Test3的
      • SuiteTearDown

我想让OuterSuite.SuiteSetUp加载一个带有一些基本测试数据的数据库。然后,InnerSuite1.SuiteSetUp和InnerSuite2.SuiteSetUp中的每一个都会稍微修改测试数据以用于它们各自的测试组。 (并将其恢复为相应SuiteTearDown中的起始值。)

但正如我所知,"只能有一个!" SuiteSetUp。您将如何获得理想的行为?

2 个答案:

答案 0 :(得分:0)

我们通过利用Hudson为特定目的运行特定套件解决了类似的问题。

它有点像这样:

  1. 我们运行了一个BootStrap页面来准备数据库。这是一个单独的Hudson工作。此作业准备数据库,然后备份。
  2. 然后,当我们运行套件时,我们会在每个套件之前恢复数据库。
  3. 恢复数据库后,运行套件。我们单独运行主要套件以强制数据库清理,因为我们现在无法支持数据库回滚。
  4. 这种方法并不完美,但它可以让我们更好地管理数据库。

答案 1 :(得分:0)

你可以通过这种技巧获得这种结构。

InnerSuite的内容#.SuiteSetUp

 !include -c <OuterSuite.SuiteSetUp
 # Your original code of the suite setup

通过此流程,将首先运行OuterSuite的SuiteSetUp,然后运行其余内容。

此结构也可以在SuiteTearDown中使用,但是可以智能地颠倒顺序。这可以是例如删除具有连接到将在外部拆除中删除的行的外键的行时使用。

InnerSuite的内容#.SuiteTearDown

 # Your original code of the suite teardown
 !include -c <OuterSuite.SuiteTearDown