Test unitaire de Visual Studio: configuration et déchirement

90

Au lieu de [SetUp] et [TearDown] dans Nunit, quelle est l'alternative dans Visual Studio Ultimate 2010 Unit Testing. Dans Nunit, vous pouvez imaginer que les méthodes de configuration et de démontage sont des constructeurs et des destructeurs pour les tests de notre classe.

Etibar Hasanov
la source

Réponses:

143

Une méthode annotée avec [TestInitialize]est exécutée avant chaque test. Il en [TestCleanup]est de même après chaque test.

[ClassInitialize]et [ClassCleanup]sont exécutés avant et après la «suite» de tests à l'intérieur de TestClass.

Mikeb
la source
6
Vous auriez pu ajouter que la méthode ClassInitialize prend un TestContext comme argument.
boutta
4
Et cela devrait aussi être public statique
Shalom Aleichem
4

Visual Studio utilisera MSTest, c'est-à-dire le cadre de test unitaire de Microsoft, il est similaire à NUnit. En fait, la plupart d'entre eux ont des concepts similaires mais une syntaxe différente.

Afin de visualiser la comparaison, les créateurs de xUnit (un autre framework de test unitaire) ont une liste ici:

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

Plus précisément, ce que vous avez demandé TestInitializeest l'équivalent de MSTest à NUnit Setup, et de même pour TestCleanupet TearDown.

Une chose à noter, je resterais avec NUnit si vous essayez de faire des tests unitaires automatisés ou une sorte d'intégration continue. La principale raison pour laquelle les différents *unitframeworks sont préférés à MSTest est que vous devez avoir une copie de Visual Studio sur la machine sur laquelle vous exécutez les tests. Amende pour votre propre machine locale, histoire différente pour un serveur CI. Visual Studio est un porc d'un programme, et l'installer sur un serveur (qui est généralement censé être aussi léger et rapide que possible), juste pour exécuter des tests est un peu ennuyeux.

Arran
la source
7
Vous pouvez simplement installer TFS Team Test Agent (et ne pas le configurer) sur un serveur CI pour installer les exécuteurs de test ( microsoft.com/en-us/download/details.aspx?id=1334 ). Pas besoin d'une installation complète de Visual Studio, sauf si vous voulez des tests génériques, ordonnés, codés ou de performance.
jessehouwing
1
Team Build 2012 installe la prise en charge de différents exécuteurs de tests prêts à l'emploi sans qu'il soit également nécessaire d'installer Visual Studio sur votre serveur de build.
jessehouwing