我们在生成 HTML 报告以及机器可读报告的 CI 系统中执行 MBunit 测试。我想将图像附加到 HTML 报告中。
通过 Gallio.Icarus 运行时,图像显示在执行日志中。不幸的是,它们不适用于 HTML 报告。MBunit 将图像保存在“C:\Users\username\AppData\Local\Temp\Gallio\”中。
背景和目标:我们通过 CI 系统在所有支持的浏览器中运行 WebDriver 测试。当测试失败时,我们会花费大量时间进行调试。一张图说一千个字,所以我会在报告中附上屏幕截图。运行 Icarus 以查看输出将是一个手动过程,这违背了自动化测试的要点。
代码示例:(RemoteScreenShot 实现是此 java RemoteScreenShot到 C# 的端口)
[SetUp]
public void SetUp()
{
var capabilties = new DesiredCapabilities(new Dictionary<string, object>() {{"browserName", "internet explorer"}});
// This is a subclass of RemoteWebDriver that supports screenshots.
_driver = new RemoteScreenShot(new Uri(HubServer), capabilties);
_google = new GoogleHome(_driver);
}
[Test]
public void TestScreenShot()
{
_driver.Navigate().GoToUrl("http://www.google.co.uk");
var screenShot = ((ITakesScreenshot)_driver).GetScreenshot();
screenShot.Should().Not.Be.Null();
using (var stream = new MemoryStream(screenShot.AsByteArray))
{
var image = new Bitmap((stream));
TestLog.Write("Hello");
TestLog.AttachImage("Screenshot", image);
}
}