Ich habe mit diesem Problem gekämpft, hoffentlich wird es jemand anderem helfen.Klassen, die mit TestInitialize und TestCleanup nicht ausgeführt wurden
Während Tests Erzeugungseinheit unter Verwendung MSTest ich entdeckte ich wurde in jedem Test den gleichen Code wiederholt wird, und ein paar Attribute praktisch gefunden (TestInitialize
, TestCleanup
, ClassInitialize
und ClassCleanup
).
Wenn Sie eine Methode mit einem dieser Attribute markieren, sollte es angeblich automatisch ausgeführt werden (vor jedem Test, nach jedem Test, vor allen Tests und nach allen Tests). Frustrierend ist das nicht passiert, und meine Tests sind fehlgeschlagen. Wenn diese Methoden direkt von den mit dem Attribut TestMethod
gekennzeichneten Klassen aufgerufen werden, sind die Tests erfolgreich. Es war offensichtlich, dass sie nicht selbstständig waren.
Hier einige Beispiel-Code, den ich verwendet wurde:
[TestInitialize()]
private void Setup()
{
_factory = new Factory();
_factory.Start();
}
Warum ist diese Ausführung nicht?
Auch sie werden nicht funktionieren, wenn sie statisch sind. – stuartdotnet
@Stefan de Kok: Unglaublich, dass ich es übersehen habe. Danke für den Tipp! – christoph
Auch sie funktionieren nicht, wenn async. – andrew