0

多くの場合、個別に合格してもスイートの一部として実行すると失敗する Fitnesse テストがあります (またはその逆)。

これは、各テスト間でセットアップの一部が残っているためです。テストが両方の場合で同じように動作することが保証されるように、すべてのテストを実行する前に、Fitnesse に新しいスレッド/プロセス/何でも使用するように指示する方法はありますか?

現時点では、継続的インテグレーション サーバーでスイートの結果を使用しています。これは、個別に失敗するテストがリリースに到達できることを意味します。これは私たちを緊張させています!

以下の例では、AlarmDefintionSet は AlarmDefinition の親オブジェクトです。AlarmDefinitionSetSetUpFixture は AlarmDefinitionSet を作成し、メモリに保存します。AlarmDefinitionFixture がメモリ内の親であることを検出し (ID による場合もありますが、以下の例ではデフォルトのものを使用しています)、これをプロパティとして設定し、Code、InitialWTGStopped、および RunAlarm プロパティを設定します。次に、Valid メソッドと ValidationMessage メソッドをテストとして呼び出します。

このテストは、スイートの一部として、または単独で実行すると正常に機能します。ただし、AlarmDefinitionSetSetUpFixture を削除すると、適切な親を見つけることができないため、単独で実行すると失敗します。ただし、それがスイートの一部として実行され、以前のテストに AlarmDefinitionSetSetUpFixture が含まれていた場合は、パスします。これはやや単純化されたものですが、関連するポイントを示しています。Fitnesse の "[SuiteName].SetUpFixture" ファイルを使用して、メモリからすべてをクリアするメソッドを呼び出すことができます。このようなファイルをすべてのスイートに追加し、それが呼び出すメソッドがメモリからすべてを正しく削除するようにするのは大変な作業です。

フィットネステストの例

この例のフィクスチャはすべて fit.ColumnFixture のものです。

ありがとう ...

4

1 に答える 1

0

簡単な答え - いいえ、各テストを独立させるための FitNesse 設定はありません。あなたはそれを自分で処理する必要があります。各テスト ページの最初に含まれるセットアップ ページを使用して、テストごとにクリーンな環境を確保するためのフィクスチャを実行することがあります。

于 2013-03-17T04:41:23.617 に答える