Модульное тестирование Visual Studio: SetUp и TearDown

90

Вместо [SetUp] и [TearDown] в Nunit, что является альтернативой в модульном тестировании Visual Studio Ultimate 2010. В Nunit вы можете представить себе методы установки и удаления как конструкторы и деструкторы для тестов в нашем классе.

Этибар Гасанов
источник

Ответы:

143

[TestInitialize]Перед каждым тестом запускается метод, помеченный значком . Точно так [TestCleanup]же после каждого теста.

[ClassInitialize]и [ClassCleanup]выполняются до и после «набора» тестов внутри TestClass.

Mikeb
источник
6
Вы могли добавить, что метод ClassInitialize принимает в качестве аргумента TestContext.
boutta
4
И это также должно быть общедоступным статическим
электричеством
4

Visual Studio будет использовать MSTest, фреймворк для модульного тестирования Microsoft, он похож на NUnit. Фактически, большинство из них схожи по концепции, но различаются синтаксисом.

Для просмотра сравнения у создателей xUnit (еще одной платформы модульного тестирования) есть список здесь:

http://xunit.github.io/docs/comparisons.html

В частности, то, что вы просили, TestInitializeявляется эквивалентом MSTest для NUnit Setup, а также для TestCleanupи TearDown.

Следует отметить, что я бы остался с NUnit, если вы пытаетесь выполнить автоматическое модульное тестирование или какую-то непрерывную интеграцию. Основная причина, по которой различные *unitфреймворки предпочитают MSTest, заключается в том, что у вас должна быть копия Visual Studio на компьютере, на котором вы запускаете тесты. Прекрасно для вашей локальной машины, другая история для CI-сервера. Visual Studio - это свинка программы, и установка ее на сервер (который обычно должен быть максимально легким и быстрым), просто запускать тесты, немного раздражает.

Арран
источник
7
Вы можете просто установить агент тестирования TFS Team (но не настраивать его) на сервере CI, чтобы установить средства выполнения тестов ( microsoft.com/en-us/download/details.aspx?id=1334 ). Нет необходимости в полной установке Visual Studio, если вам не нужны тесты Generic, Ordered, CodedUI или Performance.
jessehouwing
1
Team Build 2012 устанавливает поддержку для различных средств запуска тестов прямо из коробки, без необходимости устанавливать Visual Studio на ваш сервер сборки.
jessehouwing