2011-08-31 29 views
8

我在使用MSTest在Selenium中創建Web測試,並且希望在每次測試失敗時都進行截圖,但是我不想每次測試都通過一次。在MSTest中如何檢查最後一次測試是否通過(在TestCleanup中)

我想要做的就是在[TestCleanup]方法中加入一個截圖功能,如果測試失敗就運行它,但如果測試通過則運行它。但是,我怎麼知道最後的測試是否通過?

目前我在做bool = false[TestInitialize]bool = true如果測試運行通過。

但我不認爲這是一個很好的解決方案。

所以基本上我正在尋找一種方法來檢測在做[TestCleanup]時最後一次測試是否真假。

回答

2

通過@MartinMussmann答案是正確的,但不完整。要訪問"TestContext" object你需要確保其聲明爲您的TestClass屬性:

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

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

這在following post也被提及。

+0

這是正確的,但代碼片段給了我一個錯誤「TestContext必須是TestContext類型,必須是非靜態的,公共的並且不能是隻讀的」。所以我把屬性改爲: 'public TestContext TestContext {get;組; }' – LambdaCruiser

+0

@LambdaCruiser正確,我已經用這個建議更新了答案 –

11

解決方案

if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed) 
{ 
    // some code 
} 
相關問題