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



我正在使用MSTest在Selenium中创建web测试,并希望每次测试失败时都进行截图,但我不想每次测试通过时都进行截图。

我想做的是在[TestCleanup]方法中放置一个屏幕截图函数,如果测试失败,但如果测试通过,则不运行它。但是我怎么知道最后一次测试是否通过了呢?

如果测试通过,我正在[TestInitialize]bool = true上做bool = false

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

所以基本上我正在寻找一种方法来检测如果最后测试true/false时做[TestCleanup]

@MartinMussmann的答案是正确的,但不完整。要访问"TestContext"对象,你需要确保在TestClass中把它声明为一个属性:

[TestClass]
public class BaseTest
{
    public TestContext TestContext { get; set; }
    [TestCleanup]
    public void TestCleanup()
    {
        if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
        {
            // some code
        }
    }
}

解决方案

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

最新更新