Domanda

Nello spazio dei nomi UnitTesting di Microsoft ( Microsoft.VisualStudio.TestTools.UnitTesting ) ci sono gli attributi AssemblyInitialize e AssemblyCleanup che puoi applicare a metodi statici e saranno chiamati rispettivamente prima e dopo tutti i test.

[AssemblyInitialize]
static public void AssemblyInitialize(TestContext testCtx)
{
    // allocate resources
}

[AssemblyCleanup]
static public void AssemblyCleanup()
{
    // free resources
}

La mia domanda: è possibile e sicuro accedere al TestContext in AssemblyCleanup () ? In caso contrario, la memorizzazione dei riferimenti alle risorse come membri statici è un'alternativa ragionevole o potrebbe anche causare problemi?

In aggiunta / facoltativamente: qual è il ragionamento dietro non passando un riferimento al TestContext ai metodi di pulizia?

È stato utile?

Soluzione

Sto accedendo a una proprietà statica della stessa classe e sembra funzionare bene. Aggiornerò questa risposta in caso di problemi. Non sono non , tuttavia, accedo al TestContext , quindi sono curioso di sapere se anche questo funzionerebbe.

Altri suggerimenti

Non è possibile passare parametri al metodo AssemblyCleanup. Ecco l'errore se provi a farlo:

  

Messaggio di risultato: metodo   SomeNamespace.TestDatabaseInitializer.AssemblyCleanup ha errato   firma. Il metodo deve essere statico, pubblico, non restituisce un valore   e non dovrebbe accettare alcun parametro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top