Vorrei registrare alcune informazioni contestuali quando i test falliscono (come catturare schermate). Esiste un punto di estensibilità nel quadro NUnit in cui posso farlo? Idealmente sarebbe:Asserzioni di cattura in NUnit
[TearDown]
public void Down(AssertionException ex) {}
ma non ce l'abbiamo. Ho cercato di creare un componente aggiuntivo, ma non so come registrare in fase di esecuzione:
[NUnitAddin]
public class UITestCase : TestCaseBase, NUnit.Core.EventListener, NUnit.Core.Extensibility.IAddin {
.............
public void UnhandledException(Exception exception){}
public bool Install(NUnit.Core.Extensibility.IExtensionHost host) {
IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
listeners.Install(this);
return true;
}
}
UITestCase
è la mia classe di base per tutti i test dell'interfaccia utente. Il metodo Install()
non viene chiamato. Qualsiasi consiglio sarebbe apprezzato.
Aggiornamento: per un componente aggiuntivo per essere registrati i test devono correre con NUnit corridore (nel mio caso è stato TestDriven.Net plug-in per VS) e EventListener
membri sono chiamati ottenere correttamente. Il problema è che tutti hanno chiamato dopo i metodi TearDown/TestFixtureTearDown (il mio contesto è stato perso).
cercato di utilizzare TestContext.CurrentContext.Result
nel mio tearDown ma l'accesso sia State
o Status
proprietà tiri NullReferenceException
:(
Oh no. Quando hai qualche migliaio di test non è un'opzione. – UserControl
Puoi dirmi se si tratta di un test guidato dai dati o di migliaia di casi di test diversi. –