将类包装到Method中,以便每次运行类

时间:2017-07-07 11:35:21

标签: c# selenium xunit

我想将一个类包装到我的Test中,所以我不需要每次都写这个类。

故事: 我有一个基类,它在测试失败时截取屏幕截图。 该函数运行良好,但我必须用类包装所有测试,这就是我想要避免的。

现在测试看起来像这样。

[Fact]
public void TextEditor()
{
    UITest(() =>
    {
        // Run Test
    });
}

但我的预期结果是

[Fact]
public void TextEditor()
{
    // Run Test
}

是否可以将类与FACT属性合并?或者您对如何做到这一点有所了解?

基类:

protected void UITest(Action action)
{
    try
    {
        action();
    }
    catch (Exception ex)
    {
        var screenshotHandler = CurrentBrowser.Driver as ITakesScreenshot;
        if (screenshotHandler != null)
        {
            var screenshot = screenshotHandler.GetScreenshot();
            var path = CurrentBrowser.GetScreenshotLocation(
                new StackFrame(1).GetMethod().Name);
            var file = new FileInfo(path);
            if (file.Directory != null && !file.Directory.Exists)
            {
                file.Directory.Create();
            }
            screenshot.SaveAsFile(path, ScreenshotImageFormat.Jpeg);
        }

        throw;
    }
}

0 个答案:

没有答案