Unit test di Visual Studio: SetUp e TearDown


90

Invece di [SetUp] e [TearDown] in Nunit, qual è l'alternativa in Visual Studio Ultimate 2010 Unit Testing. In Nunit puoi immaginare che i metodi di configurazione e smontaggio siano come costruttori e distruttori per i test nella nostra classe.



Risposte:


143

Un metodo annotato con [TestInitialize]viene eseguito prima di ogni test. Allo stesso modo [TestCleanup]è dopo ogni test.

[ClassInitialize]e [ClassCleanup]vengono eseguiti prima e dopo la "suite" di test all'interno di TestClass.


6
Avresti potuto aggiungere che il metodo ClassInitialize accetta un TestContext come argomento.
circa il

4
E dovrebbe anche essere statico pubblico
Shalom Aleichem

4

Visual Studio utilizzerà MSTest, ovvero il framework di unit test di Microsoft, è simile a NUnit. In effetti, la maggior parte di essi sono simili nei concetti ma con una sintassi diversa.

Per visualizzare il confronto, i creatori di xUnit (un altro framework di unit test) hanno un elenco qui:

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

Più specificamente quello che hai chiesto, TestInitializeè l'equivalente di MSTest di NUnit Setupe lo stesso perTestCleanup e TearDown.

Una cosa da notare, resterei con NUnit se stai tentando di eseguire test di unità automatizzati o qualche tipo di integrazione continua. Il motivo principale per cui i vari *unitframework sono preferiti rispetto a MSTest è perché devi avere una copia di Visual Studio sulla macchina su cui stai eseguendo i test. Va bene per la tua macchina locale, storia diversa per un server CI. Visual Studio è un maiale di un programma e installarlo su un server (che generalmente dovrebbe essere leggero e veloce come può essere), solo per eseguire i test è un po 'fastidioso.


7
Puoi semplicemente installare TFS Team Test Agent (e non configurarlo) su un server CI per installare i test runner ( microsoft.com/en-us/download/details.aspx?id=1334 ). Non è necessaria un'installazione completa di Visual Studio, a meno che non si desiderino test generici, ordinati, codificati o delle prestazioni.
jessehouwing

1
Team Build 2012 installa il supporto per diversi runner di test out-of-the-box senza la necessità di installare Visual Studio anche sul tuo server di compilazione.
jessehouwing
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.