我正在使用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
}