2016-01-05 16 views
14

Co jest odpowiednikiem xUnit następującego kodu MSTest:xUnit Equivelant z MSTest za Assert.Inconclusive

Assert.Inconclusive("Reason"); 

To daje żółtą wynik testu zamiast zwykle zielone lub czerwone. Chcę potwierdzić, że badanie nie mogło zostać przeprowadzone z powodu pewnych warunków i że test powinien zostać powtórzony po spełnieniu tych warunków.

+0

W wersji 1.x nie było żadnego, która wersja xUnit używasz? https://xunit.github.io/docs/comparisons.html – jessehouwing

+0

Najnowsza wersja 2.1.0. –

Odpowiedz

7

Jednym ze sposobów jest użycie parametru Skip w atrybutach Fact lub Theory.

[Fact(Skip = "It's not ready yet")] 
public void ReplaceTokensUnfinished() 
{ 
    var original = ""; 
    var expected = ""; 
    var tokenReplacer = new TokenReplacer(); 
    var result = tokenReplacer.ReplaceTokens(original, _tokens); // (_tokens is initialised in a constructor) 
    Assert.Equal(result, expected); 
} 

Co daje ten wynik podczas uruchamiania:

enter image description here

+9

Nie podoba mi się to. Czy nie oznacza to, że każdy wyjątek lub awaria oznaczałaby pominięcie testu? Chcę, aby w niektórych okolicznościach była ona nierozstrzygająca i nie udać się inaczej ... – Kody

+0

To prawda, pomija test. Wygląda na to, że nie możesz zrobić tego, czego potrzebujesz. xUnit jest jednak open source, więc możesz dodać do niego swoją funkcjonalność;) – testpattern

+1

Dodatkowo dodanie Skip to Theory pomija wszystkie testy (dla wszystkich "teorii"), a nie tylko pojedynczy przebieg. – Kody

4

Najlepsza rzecz, jaką można zrobić, dopóki coś jest zaimplementowana w bibliotece jest użycie Xunit.SkippableFact

[SkippableFact] 
public void SomeTest() 
{ 
    var canRunTest = CheckSomething(); 
    Skip.IfNot(canRunTest); 

    // Normal test code 
} 

to będzie co najmniej spraw, aby pojawił się na liście jako żółty ignorowany przypadek testowy.

zasługa https://stackoverflow.com/a/35871507/537842

+0

Niedostępne w .NET Core 2, .NET Standard 2, .NET Framework 4.7 – Kody

+0

mógłbyś dać odniesienie do tego, ponieważ używam go w projekcie xUnit kierującym na 'netcoreapp2.0'. – Anttu

+0

Sprawdź zależności, nie kompiluje się .NET Standard 2. Kompiluje się z .NET Framework 4.5. – Kody