MSTest.exe kopiert nicht alle benötigten Projekt-DLLs?

8

Ich versuche, MSTest.exe zur Ausführung zu bringen, und es scheint, als ob testcontainer nicht richtig gelesen wird; während meine Tests alle erfolgreich in allen Konfigurationsumgebungen in Visual Studio ausgeführt werden.

Der Befehl, den ich verwende, ist:

%Vor%

Die Projektreferenzen innerhalb des Testcontainer-Projekts sehen folgendermaßen aus:

%Vor%

Weder die ServiceConfiguration.Interfaces noch die ServiceConfiguration.Services-DLL werden in den Out-Ordner in TestResults eingefügt.

Die Projekt-GUIDs stimmen zwischen den Referenzen und den referenzierten Projekten überein.

Gibt es etwas, das mir in der Befehlszeile fehlt?

    
Josh Russo 10.11.2011, 17:09
quelle

3 Antworten

6

mstest.exe wird nicht alle referenzierten DLLs verdecken: Ссылка

    
Anuraj 22.11.2011 17:38
quelle
4

Sie können mit einer test settings file genau angeben, welche Dateien in das Testverzeichnis kopiert werden. Sie können in Visual Studio mehrere Testeinstellungsdateien erstellen, sodass Sie über eine für die Ausführung von VS, eine weitere für die Ausführung von MSTest, eine weitere für Server-CI-Builds usw. verfügen können. Weitere Informationen finden Sie hier: Erstellen Sie Testeinstellungen, um automatisierte Tests von Visual Studio aus auszuführen

Verwenden Sie die Option /testsettings:<filename> , um sie in der Befehlszeile anzugeben.

Was die Leute zunächst verwirrt, ist, dass das "aktuelle Verzeichnis" von MSTest standardmäßig nicht das MSTest-Startverzeichnis, sondern der Out-Ordner der Testergebnisse ist.

Wie bereits erwähnt, leitet MSTest nicht alle verwendeten Assemblys korrekt zurück. Wenn Sie keine direkte Referenz haben, wird die Assembly nicht kopiert. Das heißt, Visual Studio hat auch ein ähnliches Verhalten in seinem Build, also arbeiten viele Leute daran, indem sie falsche Code-Referenzen hinzufügen - eine schreckliche Lösung - ich empfehle es nicht.

Allerdings sind native DLLs noch problematischer, und ich habe herausgefunden, dass das explizite Kopieren von ihnen in der Testkonfiguration (Testeinstellungen) für sie genauso funktioniert wie für verwaltete Assemblies.

    
user1164178 29.08.2014 01:38
quelle
1

Ob es nach Out oder dem Build-Bereich geht, hängt von verschiedenen Faktoren ab. Für die Situationen, in denen es immer noch nicht funktioniert, können Sie ein DeploymentItem "hack" verwenden, oder Ihre runsettings-Datei optimieren.

Versuchen Sie, diese Antwort zu betrachten: Ссылка

    
JamesDill 26.10.2015 11:27
quelle

Tags und Links