2017-09-16 4 views
0

Ich habe vor kurzem ein .Net Core 2-basiertes Projekt unter Windows 10 mit Visual Studio 2017 erstellt. Ich habe zwei Klassenbibliothek Projekt, eins ist für Quellcode und ein anderes Projekt ist für NUnit Testfälle des Quellcodes. Ich habe diese Projekte mit Visual Studio 2017 erstellt und kann Testfälle mit dem Test Explorer ausführen (Nach der Installation des Adapters NuGet Paket für mein Testprojekt). Nun möchte ich meinen Quellcode unter Linux testen, also finde ich einen Weg, Testfälle unter Linux auszuführen. Ich möchte das Projekt nicht wieder unter Linux aufbauen. Kann mir bitte jemand sagen, wie man NUnit Testfälle unter Linux ausführt? Kann ich generierte DLLs in Linux-Rechner kopieren?Wie läuft .net Kern 2 Windows kompiliert NUnit Testfälle auf Linux?

+0

Ich glaube nicht, dass der 'dotnet test' Befehl auf DLLs funktioniert, die Sie kopiert haben, ich denke, es braucht ein Projekt. Sie könnten ein NUnitLite-Projekt hinzufügen, das eine selbstausführende Test-EXE erstellt, die Ihre Test-DLL ausführt. –

+0

'dotnet test' funktioniert nur bei Projekten,' dotnet vstest' wird für veröffentlichte Test-DLL-Dateien verwendet –

Antwort

1

Angenommen, dies ist ein .NET-Core-Test-Projekt können Sie das Testprojekt veröffentlichen und die Tests auf einem Zielsystem wie folgt ausführen:

  • Run dotnet publish -o ..\tests und den Inhalt des ..\tests Projektes in das Ziel kopieren Maschine.
  • Führen Sie dotnet vstest yourtestproject.dll auf dem Computer aus, um die Tests auszuführen.
+0

Danke Martin, Der von Ihnen erwähnte Befehl scheint gut zu funktionieren. Ich habe noch eine Frage, wie ist der empfohlene Weg? Sollen wir das Projekt in Windows OS veröffentlichen und unter Linux laufen? Oder sollen wir separat auf Linux OS bauen und dort Testfälle rumspielen? – Jaydeep

+0

Technisch sollte es keinen Unterschied machen. Persönlich möchte ich sicherstellen, dass Projekte auf allen Systemen aufbauen und ich später keine Überraschungen erhalte, wie zum Beispiel Windows-exec-Schritte im Build oder Dinge, die nur funktionieren, weil das Windows-Dateisystem nicht beachtet wird. Aber es ist Geschmackssache –

+0

Andere argumentieren, dass die DLL nur einmal erstellt und überall bereitgestellt und getestet werden sollte, um sich vor dem Compiler zu schützen und Bugs aufzubauen. Das ist auch ein gültiges Argument (obwohl ich glaube, dass jeder Compilerfehler in jedem Setup ein Problem sein wird). –