Могу ли я иметь код, который выполняется до и после выполнения тестов NUnit? - PullRequest
14 голосов
/ 08 июня 2010

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

Это просто или нет?Я собираюсь реализовать целый новый тестовый прогон для такой вещи?

Ответы [ 3 ]

22 голосов
/ 08 июня 2010

Да,

Используйте атрибут [SetUpFixture] для класса и атрибуты [SetUp] и [TearDown] для методов с этим классом.

Метод SetUp в SetUpFixture выполняется один раз перед любым из приборов, содержащихся в его пространстве имен. Метод TearDown выполняется один раз после того, как все приборы завершили выполнение. В приведенных ниже примерах метод RunBeforeAnyTests () вызывается перед любыми тестами или методами настройки в пространстве имен NUnit.Tests. Метод RunAfterAnyTests () вызывается после того, как все тесты в пространстве имен, а также их индивидуальные или демонтажные работы завершены.

Источник (на странице написано 2.4, но доступно в 2.5)

4 голосов
/ 08 июня 2010

Взгляните на TestFixtureSetUp и TestFixtureTearDown .

1 голос
/ 08 июня 2010

Да, используйте атрибут SetupFixture для класса и используйте [SetUp] для инициализации до запуска тестов и [TearDown] для последующей очистки.

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