Могу ли я использовать код, который выполняется до и после того, как тесты выполняются NUnit?
У меня есть множество тестов в NUnit, которые создают данные мусора в файловой системе (плохо, я знаю, но у меня мало контроля над этим). В настоящее время у нас есть инструмент очистки, который удаляет эти временные и т.д., Но я хотел бы иметь возможность запускать этот инструмент очистки автоматически. Я должен был бы запустить его после завершения всех тестов. У меня есть аналогичная проверка, которую я хотел бы сделать в начале, чтобы гарантировать, что ни один из этих временных рядов не останется в предыдущих прогонах, которые могли бы изменить результат тестов.
Является ли такая вещь простой или мне придется реализовать целый новый тестовый бегун для такой вещи?
Ответы
Ответ 1
Да,
Используйте атрибут [SetUpFixture]
для атрибутов класса и [SetUp]
и [TearDown]
для методов с этим классом.
Метод SetUp в SetUpFixture выполняется один раз перед любым из приборов, содержащихся в его пространстве имен. Метод TearDown выполняется один раз после завершения завершенного исполнения. В приведенных ниже примерах метод RunBeforeAnyTests() вызывается перед любыми тестами или методами настройки в пространстве имен NUnit.Tests. Метод RunAfterAnyTests() вызывается после того, как все тесты в пространстве имен, а также их отдельные или завершающие отрезки завершены.
Источник (он говорит 2.4 на странице, но доступен в 2.5)
Ответ 2
Взгляните на TestFixtureSetUp и TestFixtureTearDown.
Ответ 3
Да, используйте SetupFixture атрибут для класса и используйте [SetUp] для инициализации перед запуском тестов и [TearDown] для после очистки.