Тестування модулів Visual Studio: налаштування та TearDown


90

Замість [SetUp] та [TearDown] у Nunit, що є альтернативою для модульного тестування Visual Studio Ultimate 2010. У Nunit ви можете собі уявити, що методи налаштування та розірвання є конструкторами та деструкторами для тестів у нашому класі.



Відповіді:


143

Анотований метод [TestInitialize]запускається перед кожним тестом. Аналогічно [TestCleanup]це після кожного тесту.

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


6
Ви могли додати, що метод ClassInitialize приймає TestContext як аргумент.
бутта

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 Test Agent (і не налаштовувати його) на сервері CI, щоб встановити тестові програми ( microsoft.com/en-us/download/details.aspx?id=1334 ). Не потрібно повноцінної інсталяції Visual Studio, якщо ви не хочете загальних, впорядкованих, CodedUI або тестів продуктивності.
jessehouwing

1
Team Build 2012 інсталює підтримку різних запуску тестів нестандартно, без необхідності встановлювати Visual Studio також на ваш сервер збірки.
jessehouwing
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.