0

如果 Assert.Multiple 中的断言条件失败,我想截屏。

例如

[Test]
public void TestScreenshot()
{
    Assert.Multiple(() =>
    {
        Assert.IsTrue(false);
        Assert.Istrue(true);
    });
}

在上面的测试中,假设第一个断言失败。所以我想在第一个断言之后截屏。但是 Assert.Multiple 将在多个条件内执行所有步骤后返回断言。

那么,在多重条件中添加的条件通过/失败后是否有截屏。

4

1 回答 1

0

不幸的是,不支持您想要做的事情。但是,在失败的情况下,以下可能会起作用。

Assert.IsTrue(false, () => TakeScreenShotAndReturnMessage("Your error message"));
...
private string TakeScreenShotAndReturnMessage(string msg)
{
    // Code here to take the screen shot

    TestContext.AddTestAttachment(pathToScreenShot);

    return msg;
}

几个警告:

  1. 没有比这更骇人听闻的了!该代码滥用了旨在动态生成错误消息的功能。

  2. 它是纯粹的“论坛代码”,可能需要更改。如果你这样做了,如果可以的话,请随时编辑它。根据您的 NUnit 版本,您可能需要使用 adelegate而不是 lambda。

于 2020-08-08T22:39:22.677 回答