在Nunit Multiple Asserts中截图



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

例如

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

在上面的测试中,假设第一个断言是失败的。所以我想在第一次断言后截屏。但是一旦在Multiple条件中执行了所有步骤,Assert.Multle就会返回断言。

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

遗憾的是,不支持您想要执行的操作。但是,在出现故障的情况下,以下内容可能会起作用。

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的版本,您可能需要使用delegate而不是lambda。

相关内容

  • 没有找到相关文章

最新更新