Domanda veloce, come si crea un metodo che viene eseguito solo una volta prima dell'esecuzione di tutti i test nella soluzione.Metodo di inizializzazione test globale per MSTest
50
A
risposta
88
Creare un metodo statico pubblico, decorato con l'attributo AssemblyInitialize. Il framework di test chiamerà questo Setup metodo una volta alla prova:
[AssemblyInitialize()]
public static void MyTestInitialize(TestContext testContext)
{}
Per tearDown sua:
[AssemblyCleanup]
public static void TearDown()
{}
EDIT:
Un altro dettaglio molto importante: la classe a cui questo metodo appartiene deve essere decorato con [TestClass]
. In caso contrario, il metodo di inizializzazione non verrà eseguito.
+3
Se sono stati eseguiti test in più di un assieme, MyTestInitialize verrà chiamato più volte per l'esecuzione del test . – BenCr
Vorrei saperlo, anche :(Attualmente, ho una classe base astratta da cui ogni TestClass eredita. All'interno di quella classe, ho un metodo TestInitialize. Il problema è che quel metodo viene sparato ogni volta che viene eseguito un nuovo test ! –
La classe base astratta implementa un costruttore statico e verrà eseguita una sola volta prima dell'esecuzione di uno qualsiasi dei test: – mglmnc