Nehmen Sie screenshot-test Fehler + Ausnahmen
Kennt einer von Euch kennen mögliche Lösung für die Aufnahme von Schnappschüssen auf test Fehler und Ausnahmen?
Habe ich folgenden code in TearDown()
aber wie ein Ergebnis, es macht auch screenshots auf Prüfungen bestanden, so ist es nicht die beste Lösung:
DateTime time = DateTime.Now;
string dateToday = "_date_" + time.ToString("yyyy-MM-dd") + "_time_" + time.ToString("HH-mm-ss");
Screenshot screenshot = ((ITakesScreenshot)driver).GetScreenshot();
screenshot.SaveAsFile((settings.filePathForScreenShots + "Exception" + dateToday + ".png"), System.Drawing.Imaging.ImageFormat.Png);
Hab ich schon gefunden, die Idee: http://yizeng.me/2014/02/08/take-a-screenshot-on-exception-with-selenium-csharp-eventfiringwebdriver/, zu verwenden WebDriverExceptionEventArgs
, aber für einige Gründe, es macht auch einige zufällige screenshots, ohne sinnvolle Erklärung.
Andere Ideen, die ich gefunden habe sind für Java und nicht für NUnit, die ich mit Selen, so sind Sie ziemlich nutzlos.
InformationsquelleAutor Tomasz Tarnowski | 2015-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du den screenshot Logik in Ihrem TearDown-Methode aufgerufen wird, werden nach jedem test beendet, egal ob erfolgreich oder fehlgeschlagen ist.
Benutze ich eine base-Klasse, die eine Funktion, die umschließt die tests und fängt alle Ausnahmen. Wenn ein test scheitert, werden die Ausnahme abgefangen und ein screenshot gemacht wird.
Ich verwenden Sie diese Basisklasse für alle meine Selenium tests und es sieht wie folgt aus:
Den test-Klassen dann so Aussehen:
Sie sollten in der Lage sein, dass über die Reflexion in der UITest-Methode in diesem Beispiel. Da der UITest-Methode wird aufgerufen, aus dem test-Methode, sollten Sie in der Lage sein, um den Namen der aufrufenden Methode aus der UITest-Methode. Versuchen Sie, etwas in dieser Richtung: stackoverflow.com/questions/171970/...
Sind Sie sicher, dass Ihre Ausnahmen sind Anmeldung die Nummer der Zeile, richtig? Ist es Protokollierung von Ausnahmen von der richtigen Montage? Wir tun etwas ähnlich, aber haben verloren unsere Linie zahlen, weil der AssemblyInfo ist anders bei der Verwendung von Wrappern. Zu klären ist, erhalten wir Ausnahmen protokolliert, mit den richtigen Botschaften, aber die Nummer der Zeile info fehlt und immer 0. Ist dies der gleiche Fall für Sie?
InformationsquelleAutor Erik Öjebo
In C# verwende ich NUnit 3.4. Dies bietet die
OneTimeTearDown
Methode, die in der Lage ist, Zugriff auf dieTestContext
einschließlich des Staates des früheren test ausgeführt. Verwenden Sie nichtTearDown
weil es wird nicht ausgeführt, wenn ein test fehlschlägt 😉InformationsquelleAutor Lukas
Zu diesem Zweck können Sie leicht in TestNG suite-Datei
Erstellen Sie einen ScreenShot-Methode wie Unten
In der oben genannten Methode, die ich verwendete Roboter-Klasse, so dass Sie können nehmen Sie screenshots von Dekstop auch(Fenster+Webseite) und rufen Sie diese Methode in verschiedenen Zuhörer - Klasse, die implementiert ITestListener Schnittstelle. rufen Sie Ihre screen-Shot-Methode in OntestFailure() der Listener-Klasse
Dieser code ist für mich arbeiten. Aber dieser code ist in JAVA geschrieben. Ich hoffe, dass diese Arbeit in C#, wenn ich nicht wollen, dass dieser code kann Ihnen helfen,
InformationsquelleAutor Rahil Kumar