Warum werden die NUnit-Testzeiten bei Verwendung von "Alle ausführen" im VS 2015 Test Explorer verlangsamt?

9

Ich verwende den Test Explorer in Visual Studio 2015 über den NUnit VS Adapter, um meine Komponententests auszuführen.

Wenn ich den "Run All" -Befehl des Test Explorers verwende, laufen meine Tests innerhalb von einer Sekunde und zeigen Pass / Fail, aber die Gesamtlaufzeit beträgt 34 ​​Sekunden.

Wenn Sie alle Tests auswählen und "ausgewählte Tests ausführen" aus dem Kontextmenü der rechten Maustaste verwenden, wird für die gleichen Tests eine Gesamtlaufzeit von 1 Sekunde benötigt.

Ich habe keine Hinweise gefunden, warum es so viel länger dauert, 'Run All' zu benutzen.

    
jared 02.11.2015, 22:47
quelle

1 Antwort

2

Schauen wir uns das Ausgabefenster an. Wenn ich "Run all" nehme, sieht das Ausgabefenster so aus:

  

------ Entdeckter Test gestartet ------
  ========== Entdeckter Test beendet: 92 gefunden (0: 00: 00.4993709) ==========
  ------ Run Test gestartet ------
  ========== Lauftest beendet: 92 run (0: 00: 04.157636) ==========

Wenn ich stattdessen alle Tests auswähle, die ich testen möchte, sieht das Ausgabefenster folgendermaßen aus:

  

------ Lauftest gestartet ------
  ========== Lauftest beendet: 92 run (0: 00: 03.7262618) ==========

Wenn Sie "Alles ausführen" wählen, muss der Test-Explorer den gesamten Code durchlaufen und alle Klassen mit dem "TestClass" -Attribut erneut finden. Alle Methoden sind mit dem "TestMethod" -Attribut ausgestattet (dies ist erledigt) durch Reflexion, die in manchen Fällen etwas "langsam" sein kann. Warum? Damit der Test Explorer alle neuen und vorhandenen Testmethoden finden kann.

Wenn Sie die zu testenden Methoden manuell auswählen, muss der Test-Explorer nicht alle vorhandenen und neuen zu testenden Methoden erneut finden, daher ist er schneller.

Das ist ein bisschen eine Schätzung dessen, was die "Gesamtlaufzeit" bedeutet, ich habe NUnit nie benutzt und diese Gedanken waren zu lang um in einem Kommentar zu posten.

    
Andreas 14.04.2016 06:45
quelle