2016-01-31 10 views
13

Ich habe eine sehr lange Verzögerung (ca. 1 Minute! Noch mehr) beim Unit Test in VS2015. Wenn ich nur einen einzigen Test durchführe, sehe ich den Fortschrittsbalken oben im "Test Explorer", er läuft für ungefähr eine Minute und dann bekomme ich das Testergebnis. Die gemeldete Testlaufzeit ist wie erwartet - sehr klein, wenige Millisekunden.Sehr lange Verzögerung bei laufendem C# Unit Test in VS2015

Meine Frage ist - wie kann ich das debuggen? Wie kann ich sehen, was in dieser Minute passiert, bevor der Test tatsächlich beginnt?

+0

Es ist nicht klar, ob Sie tatsächlich Test und Ihre ersten Breakpoint-Treffer nach einer Minute testen oder ob Sie nur den Test ausführen. Im zweiten Fall, um dies zu debuggen, müssen Sie einen Breakpoint- und Debug-Run-Test durchführen;) – vinjenzo

+0

Führen Sie einen universellen Windows-App-Unit-Test aus? –

+2

Ich bin zufällig auf ein ähnliches Problem gestoßen. Es scheint ein Fehler zu sein. Meistens laufen die Tests sehr schnell (in Millisekunden), aber dann scheint es hin und wieder an etwas hängen zu bleiben. Egal ob ich 1 Test oder 50 spiele. Nur eine große Pause, manchmal mehrere Minuten bis der Testlauf startet. Sobald die Tests beginnen zu laufen, sind sie schnell. Wenn Visual Studio neu gestartet wird, wird es für eine Weile gelöscht. Sehr nervig. Noch passiert in Update 2. –

Antwort

2

Eine Minute ist eine ziemlich lange Zeit für nichts zu passieren. Es gibt eine Menge von Startprozessen, die ausgeführt werden müssen, bevor irgendwelche Tests ausgeführt werden (alle Assemblys und ihre Abhängigkeiten müssen zum Beispiel geladen werden). Dieser Treffer ist im Allgemeinen derselbe, wenn Sie einen einzelnen Test ausführen oder alle Tests in Ihrer Suite ausführen.

Wenn Sie im Ausgabefenster "Tests" nachschauen, erhalten Sie eine bessere Vorstellung davon, was tatsächlich vor sich geht und wie viel Zeit tatsächlich für die Tests benötigt wird. Zum Beispiel auf meinem, einen Test läuft eine ähnliche Overhead zu laufen 49 Tests ..

========== Run Test beendet: 1 Lauf (0: 00: 01.0416253) === =======

========== Run Test beendet: 49 run (0: 00: 01.9156121) ==========

Es gibt verschiedene Dinge, die das Laden von Baugruppen verlangsamen können, z. B. statische Konstruktoren. Ich würde zunächst damit beginnen, ein neues Testprojekt ohne Abhängigkeiten zu erstellen, um zu verifizieren, dass es nicht das gleiche Problem mit der langen Verzögerung aufweist, so dass Sie wissen, dass es nicht nur Ihr Computer ist. Dann würde ich die Abhängigkeiten Ihres vorhandenen Testprojekts hinzufügen, eine Abhängigkeit nach der anderen, um zu sehen, ob das Hinzufügen einer bestimmten Abhängigkeit die Verzögerung auslöst ... Dann würde ich mir dieses Projekt ansehen, um zu sehen, ob etwas passiert, wie zum Beispiel statisch Konstruktoren, die versuchen, eine Verbindung zu einer Datenbank herzustellen/Netzwerkverbindungen herzustellen.

Es kann auch einen Versuch wert sein, Ihre Tests zu debuggen, aber sicherzustellen, dass Sie Break Wenn Exceptions geworfen werden aktiviert sind (wenn es wie eine fehlgeschlagene Datenbankverbindung ist, die die Verlangsamung verursacht, besteht eine gute Chance) Ausnahme könnte als Teil dieses Prozesses ausgelöst werden).