C# 如何从catch块中的Assert.Multiple获取所有保存的结果?
测试功能生成以下报告:C# 如何从catch块中的Assert.Multiple获取所有保存的结果?,c#,nunit-3.0,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.S
[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;
}
}
如何在catch块中获得相同的报告?现在我只得到以下信息:
One or more failures in Multiple Assert block:
1) Expected: False
But was: True
2) Expected: 0
But was: 7
也许我找到了解决问题的办法。我没有将错误记录在测试本身中,而是跳过整个try-catch块,将结果记录在TearDown中。大概是这样的:
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:\Development\TestClass.cs:line 76
[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);
});
}