3

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

  • 外套房
    • 套件设置
    • 内部套房1
      • 套件设置
      • 测试1
      • 测试2
      • 测试3
      • 套件拆解
    • 内部套房2
      • 套件设置
      • 测试1
      • 测试2
      • 测试3
      • 套件拆解

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

但正如我发现的那样,“只能有一个!” 套件设置。您将如何获得所需的行为?

4

2 回答 2

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
于 2014-01-30T09:57:59.010 回答
0

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

它有点像这样:

  1. 我们有一个 BootStrap 页面,我们运行它来准备数据库。这作为单独的 Hudson 作业运行。该作业准备数据库,然后对其进行备份。
  2. 然后,当我们运行我们的套件时,我们会在每个套件之前还原数据库。
  3. 数据库恢复后,运行一个套件。我们单独运行主要套件来强制数据库清理,因为我们现在不支持数据库回滚。

这种方法并不完美,但它可以让我们更好地管理数据库。

于 2012-05-16T18:45:11.247 回答