首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在catch-block中从Assert.Multiple中获取所有保存的结果?

如何在catch-block中从Assert.Multiple中获取所有保存的结果?
EN

Stack Overflow用户
提问于 2018-04-03 21:26:29
回答 1查看 164关注 0票数 3
代码语言:javascript
复制
[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;
    }
}

测试函数生成以下报告:

代码语言:javascript
复制
  One or more failures in Multiple Assert block:
  1)   Expected: False
  But was:  True

  2)   Expected: 0
  But was:  7

如何在catch-block中获得相同的报告?现在我只得到以下信息:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2018-04-03 21:40:51

也许我找到了解决问题的办法。我没有将错误记录在测试本身中,而是跳过了整个try-catch-block,并将结果记录在TearDown中。如下所示:

代码语言:javascript
复制
    [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);
        });
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49631306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档