Wie man unit test führen Sie im bin-Ordner
Ich versuche, auf eine Datei in meine Lösung-Struktur, die während der unit-test. Mein unit-test-Projekt hat die bin\Debug\
als das Ausgabe-Verzeichnis. Also ich habe geschrieben, das code unter der Annahme, dass Path.GetFullPath(".")
in meinem unit-test wird mir dieser Ordner "bin". Aber was er tut ist, es gibt mir einen temporären Speicherort als Pfad.
C:\Users\[username]\AppData\Local\Temp\TestResults\[username]_[machine_name] 2013-05-16 08_31_07\Out
So offensichtlich meine unit-test konnte nicht auf die Dateien in meiner Lösung. Wenn jemand weiß, wie man unit test führen Sie im bin-Ordner des unit-test-Projekt bitte um Hilfe.
InformationsquelleAutor Geethanga | 2013-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun, indem Sie mit einem .runsettings-Datei, und die Einstellung
<DeploymentEnabled>false</DeploymentEnabled>
. Siehe den Abschnitt "Hinweise"hier. Allerdings können Sie nicht tun, wenn Sie verwenden ein .testsettings-Datei, und wenn Sie wollen in der Lage sein zu überprüfen alle Dateien, die die tests Lesen oder schreiben, nach einem fehlgeschlagenen ausführen, werden Sie möglicherweise nicht in der Lage, denn Sie könnten verdorben sein durch weitere tests, etc.Andere Möglichkeit ist die Verwendung Bereitstellung Elemente, die getan werden kann, durch die
DeploymentItemAttribute
oder durch Ihre .testsettings-Datei. Das Attribut Mechanismus ist bevorzugt, und im Grunde, auf test-Methoden, die Sie benötigen, um die Bereitstellung von Dateien für Sie Folgendes tun:Wo Quelle ist entweder ein relativer Pfad zu bauen, die Ausgabe-Ordner, oder ein absoluter Pfad, und Ziel ist entweder ein relativer Pfad, wo die tests ausgeführt wird, oder einen absoluten Pfad. Lassen Sie den target-parameter in diesem Fall davon ausgehen, ein Ziel ".", D. H. die Ordner, in denen die tests laufen. Die Dokumentation für diese sind hier
Siehe den ersten Teil... "<DeploymentEnabled>false</DeploymentEnabled>" und die Dokumentation über den ausführen-Einstellungen-Datei. Das ermöglicht Ihnen das ausführen in den Ordner bin\Debug.
Vielen Dank! Deaktivieren DeploymentEnabled in meine .testsettings und bereitstellen über [DeploymentItem(TestDataFolder, "TestData")] gearbeitet.
Diese Lösung funktionierte für mich, aber ich kann nicht beibehalten werden es in die Lösung. Im Grunde, wenn ich die Dateien wieder Einchecken und jemand anderes es bekommt, müssen Sie manuell wählen Sie die runsettings-Datei. Ich will, dass das persistente für diese Lösung.
InformationsquelleAutor guysherman
Weitere option, die Sie anpassen können ist die Verwendung von NUnit statt MSTest.
In diesem Fall werden die tests ausgeführt werden, in dem bin\debug-Verzeichnis
Ich schlage vor, Sie erstellen eine Beispiel-Lösung (wie ich es Tat), um es zu beweisen (ich würde gerne, mail Sie den source-code, wenn Sie Hilfe benötigen). Ich lief 2 Versionen - 1 in mstest und 1 in nunit. Bei der Ausführung in nunit dies ist, was ich habe - "D:\work\rampup\nunit-test\NunitTest\NunitTest\bin\Debug" während in mstest dies ist, was ich habe - "C:\Users\ron\AppData\Local\Temp\TestResults\ron_RON-PC 2013-07-29 16_38_27\Out"
das sieht aus wie ein guter Ort! Haben, um zu versuchen, vielleicht, meine Heimat dev-Umgebung nicht setup korrekt vielleicht, ich weiß es nicht.
Sie sind beide Recht. Wenn Sie mit NUnit-console zum ausführen der tests, wird es die Standard-Ordner. Wenn Sie Ihren NUnit-tests von VS Test-Explorer, es wird einen alternativen Speicherort verwenden.
InformationsquelleAutor Ron Sher
Dies ist ein update für jeden, der laufen könnte in diesem problem mithilfe von Visual Studio 2015. Kongruent zu @guysherman, ich habe eine Lösung, die Elemente " unter der Lösung die Datei in meinem Projektmappen-explorer, und sollte es sein .testrunconfig-Datei. Wenn Sie öffnen Sie es mit Visual Studios, Ermöglichen die Bereitstellung ist ein Kontrollkästchen an der Spitze, können Sie deaktivieren.
Ich hatte das gleiche problem, wo meine tests bereitstellen .dll ist, um einen Test-Ordner jedes mal, wenn ich lief die unit-tests, aber die .config-Datei, die Sie zusammen mit der ausführbaren Datei verweist auf eine andere gemeinsame.config, die nicht bereitstellen, alles andere, so dass ich nie an meinem SQL-server, da angegeben wurde in der gemeinsamen.config. Deaktivieren Sie die Aktivieren Sie die option Bereitstellung liefen meine tests direkt aus dem bin-Ordner in das Projekt.
InformationsquelleAutor Michael Sheely
Liefen wir in dieser Ausgabe mit VS 2017, aber unser problem war mit log4net.config nicht immer kopiert den Ordner TestResults (obwohl Kopieren war Immer true).
Unsere Lösung war das löschen der
LocalTestRun.testrunconfig
Datei aus derSolution Items
Ordner (direkt unter der Lösung). Wenn wir das getan haben, es begann mit dem \bin\debug\ Ordner wie es sein soll und fanden unsere log4net.config-Datei.InformationsquelleAutor goku_da_master
Wie es scheint, ein Visual Studio Fehler. Hier ist, was ich Tat, um es zu beheben (was magisch war!):
local.testsettings
Datei.local.testsettings
Datei wieder zurück.InformationsquelleAutor Arin Ghazarian
Wenn Sie versuchen, Zugriff auf Dateien oder Ressourcen, die Sie angenommen, sind in der Standard-Ordner, die Sie könnten versuchen, indem Sie Ihnen die explizite Verzeichnis der Montagestelle. Ein Beispiel:
AppDomain.CurrentDomain.BaseDirectory in der Regel löst der eigentlichen Montageplatz, was Sie Planten.
InformationsquelleAutor Jahmic