0

負荷テストで単体テストを使用することについて緊急の質問があります。

各テストメソッドの実行後に単体テストクラスのグローバル変数を保存する方法は?. たとえば、単体テスト クラスにグローバル変数があり、TestMethod1 がこの変数を変更し、実行後に (負荷テストの仮想ユーザーによって) 呼び出されたときに TestMethod2 がこの変数を (変更された値で) 使用できるようにしたいTestMethod1 の。

私の負荷テストの設定: テスト ミックス モデルは順序に基づいており、負荷パターンは一定 (5 ユーザー)、実行設定: 指定された反復を使用 (反復 = 5 * メソッド数)。

私はVS2012 Ultimateを使用しています。

何か考えはありますか?

前もって感謝します!

ロンビエン

4

2 に答える 2

1

グローバル変数を使用して単体テストを相互に作用させることはお勧めできません。各単体テストはアトミックに実行し、特定の動作をテストする必要があります。

ある種のセットアップ動作を共有する必要がある場合は、そのために SetUp 属性を使用します。

[TestInitialize]
public void Setup()
{
    // initialize whatever common functionality for your tests
}

テスト ランナーの設定 (並列など) によっては、テストの順序が異なる可能性があるため、テスト ケースを相互に依存させたくありません。

非常にテスト固有のセットアップ動作がある場合は、その特定のテスト専用のテスト クラスを作成します。

于 2013-02-20T19:34:21.193 に答える
0

SpecflowやStorevilなどのBDDツールの使用を検討できます。これらは、テストの「シナリオ」を設定できます。これを使用して、既存の単体テストを調整しながら、それらを分離して実行可能にすることができます。

コンテキスト共有の場合、これらのツールは両方とも、テストがデータをプッシュしたり、データを取得したりできるシナリオ全体のデータストレージをサポートします。これにはテスト自体を変更する必要があり、実際には単体テストではなくなりますが、ここでの単体テストが目標のようには思えません。

于 2013-02-20T19:42:13.387 に答える