vstest.executionengine.exe auf TFS, aber auf meinem lokalen VS2012 alles ok

8

Wenn ich den Test auf dem TFS-Server durchführe, erhalte ich den folgenden Fehler:

%Vor%

Wenn ich diese Tests auf dem lokalen Rechner durchführe, habe ich das Ergebnis "Alle bestanden" erhalten. Ich weiß nicht, was der Grund sein könnte und was ist der Unterschied zwischen den Tests auf dem TFS-Server und lokal ausgeführt werden?

    
user1261129 05.02.2014, 07:31
quelle

3 Antworten

5

Wir hatten das gleiche Problem in einem unserer CI-Builds. Der Grund war, dass ein (oder mehrere) Tests separate Threads starteten und wenn ein Absturz in einem solchen Thread und nicht im Hauptthread von vstest.executionengine auftritt, stürzt der Prozess einfach ohne zusätzliche Informationen ab. Durch Aktivieren des in der Fehlermeldung vorgeschlagenen Absturz-Dumps konnten wir das problematische Modul lokalisieren. Ein anderer Ansatz bestand darin, Testassemblys aus der Builddefinition zu entfernen, sodass nur ein Teil der Komponententests ausgeführt wird, bis der problematische Test lokalisiert wurde.

Der Unterschied zwischen der lokalen Umgebung und TFS liegt in der unterschiedlichen Ordnerstruktur, die der Erstellungsserver im Vergleich zum lokalen Server erstellt, sodass einige relative Pfade falsch sind. Genau in unserer Situation fehlten uns einige Dateien. Wir hatten beide vergessen, sie im Pfad "Quelleinstellungen" der Builddefinition zuzuordnen und vergessen, sie ordnungsgemäß bereitzustellen.

    
Velimir 26.05.2014, 14:20
quelle
1

Heute hatten wir dieselbe Ausnahme:

  

Visual Studio Test Runner für Testquellen ausführen Der aktive Testlauf
  wurde abgebrochen, weil der Ausführungsprozess unerwartet beendet wurde. Zu
  untersuchen Sie weiter, aktivieren Sie lokale Crash-Dumps entweder auf der Maschine   Level oder für Prozess vstest.executionengine.exe. Gehe zu weiteren Details:
Ссылка Testlauf abgeschlossen. 0
  Tests ausgeführt. Testlauf fehlgeschlagen.

Alle Unit-Testfälle werden abgebrochen. Wir wissen nicht warum und welcher Testfall hat den Absturz verursacht.

Wir haben "Sammeln von Benutzermodus-Dumps" zur Konfiguration ausgewählt tfs erstellt Server, um die Dumps-Datei für das Problem zu sammeln.

Und verwenden Sie DebugDiag zur Analyse-Dump-Datei. Und schließlich finden wir die Ursache heraus.

Die Hauptursache ist, dass ein Einheits-Testfall die folgende Methode aufruft und das Ergebnis sperrt:

  

[[PrestubMethodFrame]   (System.Messaging.Interop.SafeNativeMethods.IntMQPathNameToFormatName)]   System.Messaging.Interop.SafeNativeMethods.IntMQPathNameToFormatName (System.String,   System.Text.StringBuilder, Int32ByRef)   System.Messaging.Interop.SafeNativeMethods.MQPathNameToFormatName (System.String,   System.Text.StringBuilder, Int32 ByRef) + 1c   System.Messaging.MessageQueue.ResolveFormatNameFromQueuePath (System.String,   Boolean) +154 System.Messaging.MessageQueue.Exists (System.String) + ea

    
Amitabha 06.08.2014 06:53
quelle
-1

Stellen Sie sicher, dass Visual Studio 2012 auf dem Build-Server installiert ist.

    
Dylan Smith 05.02.2014 11:15
quelle