0

こんにちは!

220,000 個のファイルに4.6GB のテスト データがあります。一括テストでは、ファイルのペアを検索、照合、および解凍する必要があります。各ペアで複数の単体テストを実行したいと考えています。そのデータを必要とする単体テストの数に関係なく、テスト データを 1 回だけ検索、照合、および解凍するようにテスト フレームワークを説得できなければ、非常に長い時間がかかります。

NUnit の TestDataSource は 1 つの単体テストだけに適しているように見えましたが、複数の単体テストで深さ優先で実行されるようです。各テストは、データ セット全体を次々と実行します。

幅優先を実行し、各データを 1 回ロードして複数の単体テストに提供できるテスト フレームワークはありますか?

合格または最初の不合格の結果だけでなく、各データムのすべてのテスト結果を得るために、他にどのようなアプローチを試すことができますか?

4

2 に答える 2

1

すぐに使える簡単なソリューションがあるとは思えません。通常のパターンは、単体テストを次々に実行するだけで、各テストに複数の入力を供給する場合があります。

あなたの場合、私は次のようなことを試します。

[TestMethod]
public void MyTest()
{
    Action<Data>[] subtests = GenerateArrayOfDelegatesForAllSubtests();

    while (this.TestDataAvailiable())
    {
        Data data = this.GetNextTestDataSet();

        foreach (Action<Data> subtest in subtests)
        {
            try
            {
                subtest(data);
            }
            catch (Exception exception)
            {
                this.RecordFailedSubtestResult(subtest, data, exception);
            }
        }
    }

    this.UseRecordedSubtestResultsToFailTestWithMeaningfulMessage();
}

これは多くのカスタム作業ですが、現時点ではアリがより良い解決策を考えられないことに気づいていません。お役に立てれば。

于 2009-09-24T00:38:01.983 に答える
0

すべてのテストを1つのクラスにまとめ、テストフィクスチャのセットアップ(http://www.nunit.org/index.php?p=fixtureSetup&r=2.2.10)を使用して長いセットアップを実行してから、すべてのテストを実行できます。同じデータを使用しています。唯一の問題は、テストのいずれかがデータを変更した場合、テストが特定の順序で実行されるように設計するべきではないため、次のテストを台無しにする可能性があることです。

于 2009-09-24T00:25:41.103 に答える