2013-08-22 3 views
2

Я хочу проигнорировать некоторые тесты на основе данных, которые я вытащил из файла конфигурации во время TestFixtureSetUp. Есть ли способ игнорировать запуск теста на основе параметров?Селективный Игнорировать тесты NUnit

[TestFixture] 
public class MessagesTests 
{ 
    private bool isPaidAccount; 

    [TestFixtureSetUp] 
    public void Init() { 
     isPaidAccount = ConfigurationManager.AppSettings["IsPaidAccount"] == "True"; 
    } 

    [Test] 
    //this test should run only if `isPaidAccount` is true 
    public void Message_Without_Template_Is_Sent() 
    { 
     //this tests an actual web api call. 
    } 

} 

Если счет мы тестируем с платным счетом, тест должен работать нормально, если нет, то этот метод будет сгенерирован исключением.

Будет ли расширение атрибута [Ignore(ReallyIgnore = isPaidAccount)]? Или я должен написать это внутри метода и запустить 2 отдельных тестовых примера, например.

public void Message_Without_Template_Is_Sent() 
    { 
     if(isPaidAccount) 
     { 
       //test for return value here 
     } 
     else 
     { 
       //test for exception here 
     } 
    } 
+0

хороший вопрос. +1 –

+3

'Assert.Ignore()' в рамках теста. – Matthew

+0

@Matthew, так что его хорошая практика просто проверить состояние до и проигнорировать тест? –

ответ

0

Вы можете использовать Assert.Ignore(), как в штатах Мэтью. Вы также можете использовать Assert.Inconclusive(), если хотите классифицировать результат по-разному.

Этот Вопрос/Ответ немного похож: Programmatically skip an nunit test

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