NUnit 3.0 を使用してテストを実行します。
私の問題は次のとおりです。テストを含むクラスがあり、このクラスのコンストラクターには、すべてのテストの前に実行されるメソッドがあります (コンストラクターにあるため)。このメソッドの実行中にエラーが発生し、CleanUp
メソッドで処理します。このCleanUp
メソッドではTestContext.CurrentContext.Result.Outcome.Status
、プロパティを使用して、実行するテストのステータスを確認します。
問題は、テストがまったく実行されなかったことです(前提条件メソッドが失敗したため)。では、なぜこのプロパティがテストに合格したことを教えてくれるのでしょうか?
これが私のコードの一部です:
public class DepositSuccessTests
{
//attributes
public DepositSuccessTests(string device, WayToPay merchant)
{
SetUp();
try
{
Deposit_Money(merchant); // this method invokes an exception
}
catch (Exception e)
{
CleanUp();
}
}
[Test]
//Test that I run but that is not executed because of exception in the constructor
public void Check_Transaction_Merchant_In_Transactions()
{
_orderVerifications.CheckTransactionMerchantInTransactions_Back(_merchant);
}
[TearDown]
public void CleanUp()
{
//In the next line my test result is "Passed"
if (TestContext.CurrentContext.Result.Outcome.Status == TestStatus.Failed)
{
//Do something
}
_driver.Dispose();
}
}