1

[TearDown]実際[Test]に成功したか、使用していないかを判断するにはどうすればよいNUnitですか?

[TearDown]特に成功しなかった場合は、(Selenium 駆動の) Chrome ブラウザ ウィンドウを開いたままにしておきたいと思います[Test]。成功した場合、ウィンドウを閉じることができます。

事前にThx。

4

2 に答える 2

0

これは、これを実現するための特に洗練された方法ではありませんが、ここで説明する属性カウントの方法を使用し、テストが成功するたびにカウンターをインクリメントすることで、ティアダウンで結果を比較できます。

免責事項: これは、フィクスチャ内のすべてのテストが実行された場合にのみ機能することに注意してください (すべてTestの がカウントされるためです。たとえば、個々のケースで R# テスト ランナーを使用すると、Test惨めに失敗します)。Ignoreフィクスチャで 1 つ以上のテストを実行した場合も、カウントがアウトになるため失敗します。

[TestFixture]
public class UnitTest1
{
    private static int testsPassed = 0;

    [TearDown]
    public void TearDown()
    {
         // use reflection to find all tests in this fixture
        var totalTests = GetType()
            .GetMethods()
            .Count(method => method.GetCustomAttributes(
               typeof (TestAttribute), false).Count() > 0);

        if (testsPassed == totalTests)
        {
            // All good - can close the driver
            // seleniumDriver.Quit()
        }
    }

    [Test]
    public void FailedMethod()
    {
        Assert.AreEqual(1,2);
        Interlocked.Increment(ref testsPassed);
    }

    [Test]
    public void PassMethod()
    {
        Assert.AreEqual(1, 1);
        Interlocked.Increment(ref testsPassed);
    }
}
于 2013-11-05T19:43:03.843 に答える
0

1 つのオプションは、カスタム NUnitEventListenerアドインを作成することです。これにより、テストの失敗または成功に関する通知を受け取り、いくつかのカウンターを増やすことができます。

于 2013-11-06T07:08:28.890 に答える