È possibile accedere a TestContext in un metodo AssemblyCleanup?
-
22-07-2019 - |
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?
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.