在 Nunit Multiple Asserts 中截图
Take screenshot in Nunit Multiple Asserts
如果 Assert.Multiple 内的断言条件失败,我想截图。
例如
[Test]
public void TestScreenshot()
{
Assert.Multiple(() =>
{
Assert.IsTrue(false);
Assert.Istrue(true);
});
}
在上面的测试中,假设第一个断言是 failure.So 我想在第一个断言之后截取屏幕截图。但是 Assert.Multiple 将 return 断言一旦所有步骤都在多重条件下执行。
那么,在多重条件passes/fails中添加条件passes/fails后,有没有办法截屏
很遗憾,不支持您想执行的操作。但是,在失败的情况下,以下可能会起作用。
Assert.IsTrue(false, () => TakeScreenShotAndReturnMessage("Your error message"));
...
private string TakeScreenShotAndReturnMessage(string msg)
{
// Code here to take the screen shot
TestContext.AddTestAttachment(pathToScreenShot);
return msg;
}
一些警告:
黑客没有比这更黑客的了!该代码滥用了旨在动态生成错误消息的功能。
这是纯粹的“论坛代码”,可能需要更改。如果你这样做,感觉
如果可以,可以自由编辑。根据您的 NUnit 版本,您可能需要使用 delegate
而不是 lambda。
如果 Assert.Multiple 内的断言条件失败,我想截图。
例如
[Test]
public void TestScreenshot()
{
Assert.Multiple(() =>
{
Assert.IsTrue(false);
Assert.Istrue(true);
});
}
在上面的测试中,假设第一个断言是 failure.So 我想在第一个断言之后截取屏幕截图。但是 Assert.Multiple 将 return 断言一旦所有步骤都在多重条件下执行。
那么,在多重条件passes/fails中添加条件passes/fails后,有没有办法截屏
很遗憾,不支持您想执行的操作。但是,在失败的情况下,以下可能会起作用。
Assert.IsTrue(false, () => TakeScreenShotAndReturnMessage("Your error message"));
...
private string TakeScreenShotAndReturnMessage(string msg)
{
// Code here to take the screen shot
TestContext.AddTestAttachment(pathToScreenShot);
return msg;
}
一些警告:
黑客没有比这更黑客的了!该代码滥用了旨在动态生成错误消息的功能。
这是纯粹的“论坛代码”,可能需要更改。如果你这样做,感觉 如果可以,可以自由编辑。根据您的 NUnit 版本,您可能需要使用
delegate
而不是 lambda。