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?
Antwort
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.
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
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 –
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). –
- 1. NUnit läuft nicht meine Testfälle
- 2. Host. Net Kern-Anwendung läuft auf. Net 4.6.2 auf IIS
- 3. .Net-Kern-API-Überwachung auf Linux-Maschinen
- 4. Nuget für .net-Kern auf Linux
- 5. Transaction .net Kern 2
- 6. Kopieren von .net Kern-App von Linux zu Windows Fehler
- 7. Kopieren Sie die Datei von Linux auf Windows-Freigabe mit C# (.NET Kern)
- 8. Wird Java in Windows in Linux kompiliert?
- 9. .net Kern 2 Vorschau 2 Transaktionsbereich
- 10. .net Kern 2.0 Fehler läuft Konsole App auf ubuntu
- 11. P-Invoke in. NET-Kern mit Linux
- 12. , um bisher C# Windows-Anwendung läuft auf Linux
- 13. aspnet Kern 1.0 voll .net Framework auf Linux
- 14. Erstellen Sie Web-API-Kern auf Linux
- 15. NUnit Testfälle nicht von vererbten Klasse laufen
- 16. mxmlc kompiliert anders unter Linux und Windows?
- 17. Wie ansible von Linux läuft auf Rechnern Windows
- 18. Fehler mit Asp.NET Kern auf Linux
- 19. Wie kompiliert kscope auf Windows-System?
- 20. Code läuft 2x schneller auf Windows als auf Linux
- 21. Angular 2/.NET Kern - autorisierte Inhalte prerendering
- 22. Encoding Probleme mit .net Kern 2
- 23. Wie Entity Framework Kern auf eine Klassenbibliothek (.net Kern)
- 24. VSTS-Erstellungsfehler läuft NUnit
- 25. NUnit Testfälle, die owin Middleware überspringen
- 26. Parallize NUnit-Testfälle niedriger als Test Fixierungslevel
- 27. Erstellen Sie NUnit-Testfälle "on the fly"
- 28. Wie läuft Lucene auf .net?
- 29. .Net Core Interop Linux
- 30. kann nicht .net Kern auf Ubuntu 17.10
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. –
'dotnet test' funktioniert nur bei Projekten,' dotnet vstest' wird für veröffentlichte Test-DLL-Dateien verwendet –