Ho avuto difficoltà con questo, speriamo che possa aiutare qualcun altro.Classi contrassegnate con TestInitialize e TestCleanup non in esecuzione
Mentre la creazione di test dell'unità utilizzando MSTEST ho scoperto di ripetere lo stesso codice in ciascuna prova, e trovato un paio di attributi pratici (TestInitialize
, TestCleanup
, ClassInitialize
e ClassCleanup
).
Presumibilmente, quando si contrassegna un metodo con uno di questi attributi, è necessario eseguirlo automaticamente (prima di ogni test, dopo ogni test, prima di tutti i test e dopo tutti i test rispettivamente). Frustrante, questo non accadde e le mie prove fallirono. Se si chiamano direttamente questi metodi dalle classi contrassegnate con l'attributo TestMethod
, i test sono riusciti. Era evidente che non stavano eseguendo da soli.
Ecco alcuni esempi di codice che usavo:
[TestInitialize()]
private void Setup()
{
_factory = new Factory();
_factory.Start();
}
Allora, perché non è questo l'esecuzione?
Inoltre, non funzioneranno se statici. – stuartdotnet
@Stefan de Kok: Incredibile che l'abbia trascurato. Grazie per il suggerimento! – christoph
Inoltre non funzioneranno se asincroni. – andrew