2017-09-16 93 views
0

我最近在Windows 10上使用Visual Studio 2017創建了基於.Net Core 2的項目。我有兩個類庫項目,一個是源代碼,另一個項目是NUnit測試用例的源代碼。我使用Visual Studio 2017構建了這些項目,並且能夠使用Test Explorer運行測試用例(在爲我的測試項目安裝NUnit適配器NuGet包後)。 現在,我想在Linux上測試我的源代碼,所以我正在找到一種在Linux上執行測試用例的方法。我不想再次在Linux上構建項目。 任何人都可以讓我知道如何在Linux上運行NUnit測試用例嗎? 我可以在Linux機器上覆制生成的DLL嗎?如何在Linux上運行.net core 2 windows編譯NUnit測試用例?

+0

我不認爲'dotnet test'命令可以在您複製的DLL上工作,我認爲它需要一個項目。您可以添加一個NUnitLite項目,該項目創建一個運行您的測試DLL的自執行測試EXE。 –

+0

'dotnet測試'只適用於項目,'dotnet vstest'用於已發佈的測試dll文件 –

回答

1

假設這是一個.NET的核心測試項目,你可以發佈的測試項目和目標系統這樣的運行測試:

  • 運行dotnet publish -o ..\tests..\tests項目的內容複製到目標機。在機器上運行dotnet vstest yourtestproject.dll執行測試。
+0

感謝Martin, 您提到的命令似乎工作正常。我還有一個問題,比如推薦的方式是什麼? 我們是否可以在Windows操作系統上發佈項目並在Linux上運行? 或者我們應該在Linux操作系統上單獨構建並在那裏試用測試用例? – Jaydeep

+0

從技術上講,它不應該有所作爲。我個人喜歡確保項目建立在所有系統之上,並且以後我不會感到意外,比如只有Windows中的exec執行步驟或者只是由於Windows上不區分大小寫的文件系統才能工作。但它有待品味 –

+0

其他人可能會爭辯說,DLL應該只建立一次,並在任何地方進行部署和測試,以防止編譯器和構建錯誤。這也是一個有效的論點(儘管我相信任何編譯器bug都會在任何設置中都很痛苦) –