有没有在每次断言验证后截图的方法?无论断言通过还是失败,都应该截取屏幕截图。
需要强有力的建议
发布于 2019-09-27 00:34:02
可以,您可以使用Driver.TakeScreenshot();
您需要找到保存屏幕截图的文件路径,并保存该文件。
var screenshot = Driver.TakeScreenshot();
var filePathToSave = "C:\\Users\\YourFilePathHere";
// format as .png
screenshot.SaveAs(filePathToSave, ImageFormat.Png);我建议将它包装在一个方法中,并在需要时调用它:
public void TakeScreenshot()
{
var screenshot = Driver.TakeScreenshot();
var filePathToSave = "C:\\Users\\YourFilePathHere";
// format as .png
screenshot.SaveAs(filePathToSave, ImageFormat.Png);
}然后您可以在Assert之后使用它,如下所示:
Assert.IsTrue(something);
Driver.TakeScreenshot();您还需要处理Assert语句失败的情况--因此您还需要在[TearDown]方法中实现这一点,以确保即使测试失败也能截取屏幕截图:
[TearDown]
public void TearDown()
{
// take screenshot
TakeScreenShot();
// close and quit driver
Driver.Close();
Driver.Quit();
}发布于 2019-09-27 06:42:26
如果您使用的是Nunit。它支持多个断言。
文档摘录(https://github.com/nunit/docs/wiki/Multiple-Asserts)
多个assert块可以包含任意代码,而不仅仅是assert。
可以嵌套多个断言块。直到最外层的块退出时,才会报告失败。
如果块中的代码调用一个方法,则该方法还可能包含多个assert块。
示例用法:
[Test]
public void ComplexNumberTest()
{
ComplexNumber result = SomeCalculation();
Assert.Multiple(() =>
{
Assert.AreEqual(5.2, result.RealPart, "Real part");
Assert.AreEqual(3.9, result.ImaginaryPart, "Imaginary part");
});
}希望这能有所帮助。
https://stackoverflow.com/questions/58121176
复制相似问题