2011-08-31 19 views
8

MSTest kullanarak Selenium'da web testleri oluşturuyorum ve bir testin başarısız olduğu her defasında bir ekran görüntüsü almak istiyorum ancak her defasında bir test geçmek istemiyorum .MSTest'te son testin geçip geçmediğini kontrol etme (TestCleanup'da)

Yapmak istediğim, [TestCleanup] yönteminin içine bir ekran görüntüsü işlevi koymak ve eğer test başarısız olursa, ancak test başarısız olursa, bunu çalıştırmaktır. Ama son bir testin geçip geçmediğini nasıl anlarım?

Şu anda, [TestInitialize] numaralı telefondan bool = false ve bool = true numaralı test yapıyorum. Ancak bunun çok iyi bir çözüm olduğunu düşünmüyorum.

Temel olarak, [TestCleanup] yaparken son testin doğru/yanlış olup olmadığını saptamanın bir yolunu arıyorum.

cevap

2

@MartinMussmann tarafından yanıt doğru, ama eksik. "TestContext" object Eğer DenemeSınıfı bir özellik olarak ilan etmek emin olmanız gerekir erişmek için:

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

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

Bu aynı zamanda following post bahsedilmektedir.

+0

Bu doğru, ancak kod parçacığı bana bir hata verdi "TestContext, TestContext türünde olmalıdır, statik olmayan, genel olmalı ve salt okunur" olmalıdır. Bu yüzden özelliği şu şekilde değiştirdim: 'public TestContext TestContext {get; set; } ' – LambdaCruiser

+0

@LambdaCruiser Doğru, cevabı bu öneriyle güncelledim –

11

Çözüm

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