Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从catch块中的Assert.Multiple获取所有保存的结果?_C#_Nunit 3.0 - Fatal编程技术网

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);
        });
    }