我正在使用Selenium + C# + MsTest
框架来测试HTML5应用程序。
我正在寻找一个好的报告格式。类似于量角器中的html-screenshot-reporter。
没有任何现成的插件可供使用。有关如何使用Selenium + C# + MsTest
实现此任何建议。
我希望问题很明确!如果需要进一步澄清以使问题可以理解,请告诉我!
的问候,
Sakshi
答案 0 :(得分:2)
它远非完美(因为你必须为每个测试类引用它并且文件并没有真正附加)但这就是我所做的。
测试类
[TestClass]
public class FailingTest : TestsBase
{
[TestMethod]
public void Failing()
{
throw new Exception("Fail");
}
}
基础课程
[TestClass]
public abstract class TestsBase
{
public TestContext TestContext { get; set; }
[TestCleanup]
public void SaveScreenshotOnFailure()
{
if (TestContext.CurrentTestOutcome == UnitTestOutcome.Passed)
return;
var filename = Path.GetRandomFileName() + ".png";
using (var screenshot = ScreenCapture.CaptureDesktop())
screenshot.Save(filename, ImageFormat.Png);
TestContext.AddResultFile(filename);
}
}
屏幕截图类
public class ScreenCapture
{
public static Image CaptureDesktop()
{
// Determine the size of the "virtual screen", which includes all monitors.
var screenLeft = SystemInformation.VirtualScreen.Left;
var screenTop = SystemInformation.VirtualScreen.Top;
var screenWidth = SystemInformation.VirtualScreen.Width;
var screenHeight = SystemInformation.VirtualScreen.Height;
// Create a bitmap of the appropriate size to receive the screenshot.
var screenshot = new Bitmap(screenWidth, screenHeight);
// Draw the screenshot into our bitmap.
using (Graphics g = Graphics.FromImage(screenshot))
g.CopyFromScreen(screenLeft, screenTop, 0, 0, screenshot.Size);
return screenshot;
}
}
缺点是您可能不希望为所有测试继承单个基类,并且实际文件似乎没有附加到报表中,只包含路径。如果您在CI工具归档中使用它,那么它应该很简单。
此屏幕捕获类(got it from here)非常简单,并且依赖于Windows.Forms dll,我使用它,因为它很容易获得整个多屏桌面镜头。 Here's another example of how to do它,即每个窗口。