В MSTest, как проверить, прошел ли последний тест (в TestCleanup)
Я создаю веб-тесты в Selenium с помощью MSTest и хочу снимать скриншот каждый раз, когда тест терпит неудачу, но я не хочу принимать его каждый раз, когда проходит тест.
Я хотел бы сделать функцию скриншота внутри метода [TestCleanup]
и запустить ее, если тест завершился неудачно, но не прошел тест. Но как мне понять, прошел ли последний тест?
В настоящее время я выполняю bool = false
на [TestInitialize]
и bool = true
, если тест проходит.
Но я не думаю, что это очень хорошее решение.
Итак, в основном я ищу способ определить, действительно ли последний тест true/false при выполнении [TestCleanup]
.
Ответы
Ответ 1
Ответ @MartinMussmann правильный, но неполный. Чтобы получить доступ к объекту "TestContext", вам нужно обязательно объявить его как свойство в вашем TestClass:
[TestClass]
public class BaseTest
{
public TestContext TestContext { get; set; }
[TestCleanup]
public void TestCleanup()
{
if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
// some code
}
}
}
Это также упоминается в следующем посте.
Ответ 2
Решение
if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
// some code
}