Как заставить UnitTest провалиться автоматически через некоторое время? - PullRequest
4 голосов
/ 20 декабря 2008

Я использую NUnit (2.4.6), и моя ночь сборки / тестирования закончена с Team City 4. Я связался с командой city, и они уже сказали мне, что не могут справиться с этим. Итак, я здесь.

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

Как бы вы это сделали?

Имейте в виду, что я знаю, что Nunit 2.5 (бета-версия) имеет атрибут MaxTime , но мне нужно было бы обновить + выполнить более 800 тестов ... Я хотел бы что-то для целых тестов без необходимость обновления до этой бета-версии.

Ответы [ 3 ]

2 голосов
/ 21 декабря 2008

TC имеет время ожидания выполнения для каждой конфигурации сборки, что приводит к сбою сборки при превышении. Это в общих настройках «сбой сборки, если она дольше». Это не для юнит-теста, но я думаю, что это достаточно хорошо для вашего сценария.

1 голос
/ 22 декабря 2008

Если вы не настроены на обновление до 2.5, в примерах NUnit есть MaxTimeDecorator, который провалит тест, если он займет больше времени, чем указано. Очевидно, что это не поможет, когда тест зависает, но вы, вероятно, можете изменить образец, чтобы он порождал тест в своем собственном потоке и время от времени перезванивал, чтобы увидеть, превышен ли лимит времени. Это, однако, будет довольно сложно очень быстро.

0 голосов
/ 20 декабря 2008

Я бы использовал MaxTime, как вы предлагаете, это стандартный способ сделать это - зачем создавать что-то новое, чтобы не обновлять сами тесты?

Если проблема заключается только в количестве времени, затрачиваемом на обновление тестов, лично я, вероятно, запустил бы какую-нибудь быструю и грязную программу для анализа исходных файлов и добавления атрибута. Возможно, есть лучший способ обновления кода (генераторы или что-то еще), но это сработало бы.

Если нет веских причин не использовать NUnit 2.5?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...