【发布时间】:2019-09-24 21:10:00
【问题描述】:
如果测试执行失败,我无法设置正确的方法将屏幕截图附加到 TestResult
该框架使用 Visual Studio 2015 Selenium v3.141.0 设置。
在传递中,我尝试将 TestContext 作为参数传递给 EventFiringWebDriver,因此我可以附上带有 EventFiringWebDriver.ExceptionThrown Event 的屏幕截图
但是我不喜欢传递 TestContext,因为框架分为包含所有页面对象的 Selenium 程序集和包含所有测试用例的 Tests 程序集
TestBase.cs
[TestInitialize]
public void TestInitBase()
{
SeleniumHelper = new HelperSelenium(TestContext);
}
HelperSelenium.cs
public HelperSelenium(TestContext testContext)
{
Id = int.Parse(testContext.Properties["colegio"].ToString());
WebDriver = new WebDriverSelector(testContext);
...
}
WebDriverSelector.cs
public WebDriverSelector(TestContext tc)
{
testContext = tc;
...
var firingWebDriver = new EventListeners(remoteDriver, testContext).GetWebDriver();
...
EventListeners.cs
public EventListeners(IWebDriver driver, TestContext testContext)
{
...
private static void UploadScreenShot()
{
Screenshot ss = c.GetScreenshot();
string path = Directory.GetCurrentDirectory() + "\\" +
TestContext.TestName + "_" +
contador + ".png";
ss.SaveAsFile(path, ScreenshotImageFormat.Png);
TestContext.AddResultFile(path);
}
我想跳过将 TestContext 从一个类传递到另一个类,但是我想不出一种方法来实际实现它
【问题讨论】:
标签: c# selenium visual-studio-2015 mstest