2017-09-16 46 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都会在任何设置中都很痛苦) –