2011-08-09 4 views
6

У меня мало тестовых примеров для автоматизации пользовательских интерфейсов веб-сайта.NUnit - Повторите тестовый пример 3 раза, если он не работает

Я хочу попробовать свой тестовый пример по крайней мере три раза, если он терпит неудачу в первый и второй раз. Таким образом, я хочу убедиться, что этот тестовый пример не работает последовательно.

Пожалуйста, дайте мне знать, если у нас есть возможность использовать в NUnit. Я использую C# с NUnit.

+4

Если тест может не только иногда, тест неправильно. Единичные тесты либо терпят неудачу, либо преуспевают. Какая логика у вас есть в вашем тесте? – NOtherDev

+0

Возможно ли, что вы вводите в заблуждение интеграционные тесты для модульных тестов? Последнее, как уже отмечалось, должно быть последовательным. –

ответ

2

Существует 4 исключения, которые nunit использует, чтобы сообщить результат теста. Это: TimeoutException, AssertException, SuccessException и IgnoreException. Вы можете использовать их из своих функций тестирования nunit. Я думаю, вы могли бы поставить свой тестовый код в try-catch и поймать исключение nunit assert точно в два раза. Но я должен сказать, что, как уже отмечалось ранее, необходимость в прерывистом провале теста является поводом для переосмысления.

+3

Мы работаем над Web UI Automation. Существует хорошая вероятность того, что некоторая страница может не загружаться должным образом или какая-либо проблема в сети или какая-либо временная проблема. Мы хотим убедиться, что в течение двух-трех циклов он делает то же самое, чтобы люди могли проводить время и исследовать. Кроме того, это преодолеет ложную тревогу. – kumar

5

Зацикливание по логике, сбои счетчика. Assert. (Failure == 0) Boom done.

Не делайте этого. Напишите лучший тест, который вы можете доказать, является последовательным.

+1

Мы работаем над Web UI Automation. Существует хорошая вероятность того, что некоторая страница может не загружаться должным образом или какая-либо проблема в сети или какая-либо временная проблема. Мы хотим убедиться, что в течение двух-трех циклов он делает то же самое, чтобы люди могли проводить время и исследовать. Кроме того, это преодолеет ложную тревогу. – kumar

+0

Есть ли особые исключения, которые вы ищете? Есть ли конкретный краевой случай, который вызывает проблему? Написание теста, в котором используется кажущееся произвольное количество циклов «от 2 до 3», не похоже на сильный, полезный или проверенный тест. Вы можете написать тест для принудительной загрузки страницы. Я чувствую, что это даст вам ложную уверенность? –

15

Вы можете добавить новый атрибут в nunit на основе повтора атрибута и перестроить библиотеку. Это очень просто.

[Test] 
    [Repeat(25)] 
    public void MyTest(){ 
     // your test logic here 
    } 
5

Начиная с NUnit 3.0, есть атрибут «Повторить», который выглядит, как он будет делать то, что хочет Кумар.

См Retry Attribute

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