3

現在、スイートには次の構造があります。

  • アウタースイート
    • SuiteSetUp
    • インナースイート1
      • SuiteSetUp
      • テスト1
      • テスト2
      • テスト3
      • スイートティアダウン
    • インナースイート2
      • SuiteSetUp
      • テスト1
      • テスト2
      • テスト3
      • スイートティアダウン

OuterSuite.SuiteSetUp にいくつかの基本的なテスト データをデータベースにロードさせたいと思います。次に、InnerSuite1.SuiteSetUp と InnerSuite2.SuiteSetUp のそれぞれが、それぞれのテスト グループのテスト データをわずかに変更します。(そして、それぞれの SuiteTearDown で開始値に戻します。)

しかし、私が見つけたように、「1つしかありません!」スイートセットアップ。望ましい動作を得るにはどうすればよいでしょうか。

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. データベースが復元されたら、スイートを実行します。現在、DB ロールバックをサポートできないため、主要なスイートを個別に実行してデータベースを強制的にクリーンにします。

このアプローチは完璧ではありませんが、データベースをより適切に管理できます。

于 2012-05-16T18:45:11.247 に答える