Wie bekomme ich einen Unit-Test zu kopieren, meine DLLs und andere Dateien, wenn ich einen test durchführen?
Arbeite ich an einer Anwendung, und ich erstellt haben eine Reihe von unit-tests für Sie. Das Projekt mit der test-Klasse hängt ab, 3 third-party-DLLs. Wenn ich gehen Sie zu dem bin\Debug-Ordner für das test-Projekt, die Dlls da sind. Aber wenn ich den test ausführen, werden die DLLs nicht kopiert werden in das Testurteil\\Out".
Gibt es auch eine log4net.config-Datei aus einem anderen Projekt, dass ich gerne kopiert haben. Dieser wird nicht zeigen, bis in das test-Projekt mit dem bin\Debug-Ordner, also das ist ein weiteres Problem habe ich zu lösen.
Wie bekomme ich diese Dateien zu kopieren, wenn ich das Gerät testen?
Tony
- Was sind Sie Unit-Tests mit? NUnit? MSTest?
- MSTest, denke ich. Das tool ist in Visual Studio 2010.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir haben einen bin Ordner mit 3rd-party-DLL, die Teil des builds. Sie sind gekennzeichnet mit dem 'lokale Kopie' - Attribut in der Referenz.
Als für einzelne Dateien, können Sie das gleiche tun - Legen Sie 'Copy to output directory' auf true.
Können Sie eine DeploymentItemAttribute zum kopieren von Dateien in den Papierkorb (oder anderen) Verzeichnis.
Habe ich gefunden, wenn Ihre tests werden eingesetzt, um die test-Umgebung (standardmäßig true), lokale Kopie funktioniert nicht in einigen Fällen, wie dynamische laden der assembly.
Können Sie entweder schalten Sie das deployment aus mithilfe einer runsettings-Datei (https://msdn.microsoft.com/en-us/library/ms182475.aspx) und
Oder einem kleinen hack (leicht hässlich, da es erfordert die manuelle/hart codieren der assembly), durch die Verwendung eines DeploymentItem für die binäre (erwähnt in anderen Antworten, aber nicht spezifisch für den Umgang mit dlls, die als pro der OP):
Empfehlen beides zu machen debug/release, je nachdem, was verwendet wird auf Ihr CI/Dev.
Solche dll zu kopieren ( abgesehen von denen auf Sie verwiesen wird - wo man sagen kann
Copy Local
) und setzen Sie Sie in den Ordner " out " sollte nicht Teil des tests, aber ein Teil von Ihr build /packaging-Prozess. Haben Sie die build-Skripte, die die notwendigen kopieren der dlls.Beim Debuggen von studio Deployment-Attribut auf die Klasse oder testmethod kopieren Sie die erforderlichen Dll-Dateien und config-Dateien in den Out-Ordner, von wo MSTests ausgeführt werden. Wenn Sie von der Kommandozeile aus ausgeführt, verwenden Sie eine TestSettings-Datei und deaktivieren Sie die option für die Implementierung und stellen Sie Ihre BIN-Ordner als Arbeitsverzeichnis. Verwenden Sie/, finden Sie diese TestSettings-Datei in der Befehlszeile für die Ausführung von mstest. Auf diese Weise können Sie mstest direkt in Ihrem Ordner "BIN", ohne Abladen die DLLs in ein Verzeichnis. Wieder, verwenden Sie die Bereitstellung Attribut debug studio, es testsettings wird nicht funktionieren.