2016-11-02 3 views
1

Da ich in meinem SpecFlow-Szenario eine wichtige Konfiguration ändere, möchte ich, dass mein SpecFlow-Szenario die Konfiguration jedes Mal zurücksetzt, wenn das Szenario beendet wird, selbst wenn es in der Mitte fehlschlägt. [AfterScenario] mache die Arbeit nur, wenn es nicht fehlschlägt, aber ich brauche etwas, um meine Konfiguration zurückzusetzen, selbst wenn es fehlschlägt.Kann ich specflow eine letzte Sache machen, selbst wenn es in der Mitte des Szenarios versagt?

Danke!

Antwort

3

Ich würde vorschlagen, dass Sie überprüfen, und wenn nötig, setzen Sie Ihre Konfiguration am Anfang des Tests und nicht am Ende.
So können Sie sicherstellen, dass die Tests mit einer sauberen Weste beginnt. Sehen Sie es als einen Schritt im Arrange-Teil Ihres Tests.

Grund dafür ist, dass das AfterScenario nicht nur bei einem fehlgeschlagenen Test nicht ausgeführt wird. Wenn Sie den Test debuggen und ihn stoppen, wird er auch nicht aufgerufen.

+1

Dies ist im Allgemeinen ein guter Rat für Ihre Tests, unabhängig davon, ob sie in specflow sind oder nicht. –

+0

Danke für die gute Idee, aber ich bin in der Organisation, die viele Tests machen und ich kann nicht hinzufügen, in jedem Test, wenn es die Konfiguration neu starten muss, und ich will nicht, dass Tests, die kommen werden, nachdem ich wegen meiner betroffen werden Test, der fehlgeschlagen ist. Sie haben Recht, dass [nach Szenerio] auch nicht hilft, wenn Sie im Debug-Modus aufhören, aber vielleicht haben Sie eine Lösung, die das erste Problem lösen kann oder im besten Fall beide. – Matan

+0

@ Matan der Vorschlag war, die Bereinigung in einem '[BeforeScenario]' (oder '[BeforeFeature]') sowie im '[AfterScenario]' zu machen, da es dann keine Rolle spielt, ob der Test gestoppt wird klingt wie ein Fehler in Specflow, da es das '[AfterScenario]' aufrufen sollte, selbst wenn der Test fehlschlägt. Siehe [dies] (http://gasparnagy.com/2016/04/specflow-tips-collect-more-information-on-error-part-1/) –

Verwandte Themen