OneTimeTearDown не работает с использованием селена WebDriver - PullRequest
0 голосов
/ 31 декабря 2018

Этот код должен делать снимок экрана при сбое теста:

 [TestClass]
public class UnitTest1
{
    [OneTimeTearDown]
    public void TestFail()
    {
        IWebDriver driver = new ChromeDriver();
        if (NUnit.Framework.TestContext.CurrentContext.Result.Outcome != ResultState.Success)
        {
            string screensLocation = @"D:\";
            string testName = NUnit.Framework.TestContext.CurrentContext.Test.Name;
            var screenshot = ((ITakesScreenshot)driver).GetScreenshot();
            screenshot.SaveAsFile(screensLocation + testName + ".png");
        }
    }
    [TestMethod]
    public void TestMethod1()
    {
        // my code, here test is failed
    }
}

Но он не работает.У меня нет экрана в местоположении D: \ В противном случае есть ли способ отладки кода в атрибуте OneTimeTearDown?Потому что, когда тест не пройден, отладка заканчивается, и я не знаю, что происходит в методе TestFail ().Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 31 декабря 2018

OneTimeTearDownAttribute является функцией NUnit.

Хотя ваш тег говорит «nunit», ваш код фактически не использует его.TestClassAttribute и TestMethodAttribute являются особенностями MS Test.Если вы попытаетесь запустить этот тест с NUnit, он вообще не будет распознавать тесты.

Очевидно, что ваша тестовая сборка ссылается на инфраструктуру NUnit, поскольку в противном случае она не компилировалась бы.

... суть в том, что ваш тестовый код ссылается на две разные фреймворки таким образом, что ни один бегун не может его успешно запустить !!!Вы должны выбрать, какой из двух вы хотите использовать, удалить другую ссылку и использовать бегунок для каркаса, который вы хотите сохранить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...