我正在使用MSTest在Selenium中创建Web测试,并希望每次测试失败时都截取屏幕截图,但我不希望每次测试都通过它。
我想要做的是在[TestCleanup]
方法中放置一个截图函数,如果测试失败则运行它,但如果测试通过则不运行。但我如何判断最后一次测试是否通过?
目前我正在bool = false
和[TestInitialize]
bool = true
进行测试。
但我认为这不是一个很好的解决方案。
所以基本上我正在寻找一种方法来检测执行[TestCleanup]
时上次测试是否为真/假。
答案 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中也提到了这一点。