在MSTest中如何检查上次测试是否通过(在TestCleanup中)

时间:2011-08-31 07:15:47

标签: selenium mstest webdriver

我正在使用MSTest在Selenium中创建Web测试,并希望每次测试失败时都截取屏幕截图,但我不希望每次测试都通过它。

我想要做的是在[TestCleanup]方法中放置一个截图函数,如果测试失败则运行它,但如果测试通过则不运行。但我如何判断最后一次测试是否通过?

目前我正在bool = false[TestInitialize] bool = true进行测试。

但我认为这不是一个很好的解决方案。

所以基本上我正在寻找一种方法来检测执行[TestCleanup]时上次测试是否为真/假。

2 个答案:

答案 0 :(得分:11)

解决方案

if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
    // some code
}

答案 1 :(得分:6)

@MartinMussmann的回答是正确的,但不完整。要访问"TestContext" object,您需要确保将其声明为TestClass中的属性:

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

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

following post中也提到了这一点。