В MSTest как проверить, прошел ли последний тест (в TestCleanup) - PullRequest
10 голосов
/ 31 августа 2011

Я создаю веб-тесты в Selenium с помощью MSTest и хочу делать скриншот каждый раз, когда тест не пройден, но я не хочу делать его при каждом прохождении теста.

Я хотел поместить функцию скриншота в метод [TestCleanup] и запустить ее, если тест не пройден, но не если тест пройден. Но как мне узнать, прошел ли последний тест?

В настоящее время я делаю bool = false на [TestInitialize] и bool = true, если тест пройден.

Но я не думаю, что это очень хорошее решение.

Так что в основном я ищу способ определить, был ли последний тест истинным / ложным при выполнении [TestCleanup].

Ответы [ 2 ]

11 голосов
/ 01 сентября 2011

Раствор

if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
    // some code
}
6 голосов
/ 18 января 2017

Ответ @MartinMussmann правильный, но неполный.Чтобы получить доступ к «TestContext» объекту , необходимо обязательно объявить его как свойство в вашем TestClass:

[TestClass]
public class BaseTest
{
    public TestContext TestContext { get; set; }

    [TestCleanup]
    public void TestCleanup()
    {
        if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
        {
            // some code
        }
    }
}

Это также упоминается в следующей записи .

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