4

十分な回数実行すると失敗する SpecFlow テストがあります。既存の SpecFlow テストを取得して、失敗するまで無限に実行するにはどうすればよいですか? (理想的には、何回かかるかを数えたいと思います。)

私の最初の推測では、テスト スクリプトが最終的に呼び出すバインディング メソッドを呼び出すだけでしたが、null ポインター例外が発生し続けます。どうやら SpecFlow は、私がしていないものを初期化しているようです。

私の次の推測は、テスト機能用に自動生成されたコードを起動しようとすることでしたが、生成方法がわからない SpecFlow フレームワークからあらゆる種類のデータが必要なようです。

私がやりたいのは、テストを複数回実行することだけです。このまったく些細な作業を達成する方法が何かあるに違いないでしょうか?

4

1 に答える 1

2

頑張りすぎたようです。これが私が思いついたものです:

using System;
using NUnit.Framework;

[TestFixture]
public sealed class StressTest
{
    [Test]
    public void Test()
    {
        var thing = new FoobarFeature();
        thing.FeatureSetup();
        thing.TestInitialize();

        var n = 0;
        while (true)
        {
            Console.WriteLine("------------ Attempt {0} ----------------", n);
            thing.Scenario1();
            thing.Scenario2();
            thing.Scenario3();
            n++;
        }
    }
}

クラスを含むファイルをFoobar.feature自動生成するファイルがあります。シナリオ メソッドの名前は、機能ファイルの内容によって明らかに変わります。Foobar.feature.csFoobarFeature

これが複雑なセットアップ/分解を伴うテストで機能するかどうかは100%確信が持てませんが、私の特定のケースでは機能します...

于 2013-09-20T13:22:13.613 に答える