在Visual Studio 2017中使用NUnit测试 NET Core
在Visual Studio 2017中使用NUnit测试 NET Core
出现下面这种情况:
然后添加NuGet引用到测试框架 NUnit3.6.1,
到测试运行器 NUnit3TestAdapter 3.8.0-alpha1和测试SDK Microsoft.NET.Test .Sdk15.0.0。(下载这个运行测试器即可)
使用“ 管理NuGet包...”用户界面添加引用,或者编辑项目文件。
从project.json格式切换到.NET Core和.NET Standard项目的新的基于csproj的格式也改变了测试适配器的API。因此,NUnit的dotnet-test-nunit适配器停止工作,我们必须更新现有的Visual Studio测试适配器 来支持.NET Core。昨天晚上,我发布了测试适配器的第一个alpha版本到NuGet ,使用Visual Studio 2017,Visual Studio Code,TFS Build以及dotnet测试CLI命令来测试.NET Core和.NET Standard项目。
创建一个测试项目
以下说明适用于Visual Studio,但是这些原则适用于所有开发环境。
在要测试的解决方案中,添加| 新建项目...并添加一个Visual C#| .NET核心| 类库(.NET Core)。
我正在测试一个.NET标准库,但我正在使用.NET核心类库进行测试。测试需要一个测试平台,所以你的测试程序集必须针对特定的平台。我选择了.NET Core,但是我也可以瞄准.NET 4.5甚至是多目标测试程序集。请注意,Visual Studio几乎不支持多目标测试项目,结果可能会有所不同。希望我们很快会看到工具的改进。
添加NuGet引用
首先,您将要添加一个项目引用到您正在测试的项目,然后添加NuGet引用到测试框架 NUnit3.6.1,到测试运行器 NUnit3TestAdapter 3.8.0-alpha1和测试SDK Microsoft.NET.Test .Sdk15.0.0。使用“ 管理NuGet包...”用户界面添加引用,或者编辑项目文件。
你的csproj文件应该看起来类似于这个。注意新格式有多清洁。
在Visual Studio中运行测试
在Visual Studio中运行测试没有改变。如果您有任何疑问,请参阅我之前在Visual Studio中运行NUnit测试的文章。
有几件事要注意,
如果多目标测试,只有一个目标将运行在Visual Studio中,我相信第一个
.NET Core不支持代码覆盖率,这将在未来的Visual Studio更新中提供
Live单元测试也不适用于.NET Core
从命令行运行测试
将NUnit 3测试适配器添加到您的项目也将允许您使用dotnet测试 CLI。下面是一个运行在针对.NET 4.5和.NET Core 1.1的单元测试中的例子。
测试针对两个目标运行,并且您从dotnet测试命令获得输出,而不是从NUnit控制台获得的正常颜色的NUnit输出。希望我们将在不久的将来发布更新的控制台运行。