[TearDown]
実際[Test]
に成功したか、使用していないかを判断するにはどうすればよいNUnit
ですか?
[TearDown]
特に成功しなかった場合は、(Selenium 駆動の) Chrome ブラウザ ウィンドウを開いたままにしておきたいと思います[Test]
。成功した場合、ウィンドウを閉じることができます。
事前にThx。
[TearDown]
実際[Test]
に成功したか、使用していないかを判断するにはどうすればよいNUnit
ですか?
[TearDown]
特に成功しなかった場合は、(Selenium 駆動の) Chrome ブラウザ ウィンドウを開いたままにしておきたいと思います[Test]
。成功した場合、ウィンドウを閉じることができます。
事前にThx。
これは、これを実現するための特に洗練された方法ではありませんが、ここで説明する属性カウントの方法を使用し、テストが成功するたびにカウンターをインクリメントすることで、ティアダウンで結果を比較できます。
免責事項: これは、フィクスチャ内のすべてのテストが実行された場合にのみ機能することに注意してください (すべて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);
}
}
1 つのオプションは、カスタム NUnitEventListener
アドインを作成することです。これにより、テストの失敗または成功に関する通知を受け取り、いくつかのカウンターを増やすことができます。