2016-01-05 4 views
14

Что такое XUnit эквивалент следующего кода MSTest:XUnit Equivelant из Assert.Inconclusive MSTest в

Assert.Inconclusive("Reason"); 

Это дает желтый результат теста вместо обычного зеленого или красного цвета. Я хочу утверждать, что тест не может быть запущен из-за определенных условий и что тест должен быть повторно запущен после выполнения этих условий.

+0

В версии 1.x там не было, какая версия XUnit вы используете? https://xunit.github.io/docs/comparisons.html – jessehouwing

+0

Последняя версия 2.1.0. –

ответ

7

Один из способов - использовать параметр Skip в пределах атрибутов Fact10 или 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); 
} 

Что дает этот результат при запуске:

enter image description here

+9

Мне это не нравится. Разве это не означает, что любое исключение или сбой означают, что тест пропущен? Я хочу, чтобы уметь быть неубедительными при определенных обстоятельствах и не получилось иначе ... – Kody

+0

Правильно, он пропускает тест. Похоже, он не может сделать то, что вам нужно. xUnit - это с открытым исходным кодом, поэтому вы можете добавить к нему свои функции;) – testpattern

+1

Кроме того, добавление Skip to theory пропускает все тесты (для всех «теорий»), а не только один запуск. – Kody

4

Лучше всего один не может сделать, пока что-то реализуется в библиотеке использовать Xunit.SkippableFact

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

    // Normal test code 
} 

Это будет по крайней мере, чтобы он отображался как желтый проигнорированный тестовый пример в списке.

Заслуга https://stackoverflow.com/a/35871507/537842

+0

Недоступно в .NET Core 2, .NET Standard 2, .NET Framework 4.7 – Kody

+0

Не могли бы вы дать ссылаясь на это, потому что я использую его в проекте xUnit, ориентированном на «netcoreapp2.0». – Anttu

+0

Проверьте свои зависимости, он не компилируется для .NET Standard 2. Он компилируется с .NET Framework 4.5. – Kody

Смежные вопросы