我如何从catch块中获得所有保存的结果

  • 本文关键字:保存 结果 catch c# nunit-3.0
  • 更新时间 :
  • 英文 :

[Test]
public void AssertMultipleTest()
{
    try
    {
        Assert.Multiple(() =>
        {
            Assert.That(true, Is.False);
            Assert.That(7, Is.Zero);
        });
    }
    catch (Exception e)
    {
        Log.Save(e.ToString());
        throw;
    }
}

测试功能生成以下报告:

  One or more failures in Multiple Assert block:
  1)   Expected: False
  But was:  True
  2)   Expected: 0
  But was:  7

如何在接管块中获得相同的报告?现在我只得到以下内容:

Tests.AssertMultipleTest - NUnit.Framework.MultipleAssertException: One or more failures in Multiple Assert block:
   at NUnit.Framework.Assert.Multiple(TestDelegate testDelegate)
   at AnonymizeDataTests.Tests.AssertMultipleTest() in C:DevelopmentTestClass.cs:line 76

也许我找到了解决问题的方法。我没有记录测试本身中的错误,而是跳过整个try-catch-block并将结果记录在拆卸中。这样的东西:

    [TearDown]
    public void TearDown()
    {
        if (TestContext.CurrentContext.Result.Outcome.Status != TestStatus.Passed)
        {
            Log.Save(TestContext.CurrentContext.Result.Message);
        }
    }
    [Test]
    public void AssertMultipleTest()
    {
        Assert.Multiple(() =>
        {
            Assert.That(true, Is.False);
            Assert.That(7, Is.Zero);
        });
    }

最新更新