尽管将NuGet中的NUnit添加到现有的.Net Core项目中,但Test Pad中没有显示单元测试。
注意:我将这些图片作为链接发布,因为我的声誉太低,无法发布图片。 这是怎么回事?
- 项目> 添加 NuGet 包...
- 选择NUnit软件包(3.11.0(并单击"添加软件包">
- 已检查是否添加到解决方案中
- 在解决方案中创建了一个新的空类文件
- 向此类添加了测试 测试
- 垫中未显示任何测试
我尝试重新启动Visual Studio并重新安装软件包。
我也尝试删除项目/obj 目录 - 仍然没有运气。
using NUnit.Framework;
namespace ExampleLib
{
[TestFixture]
public class ExampleTestFixture
{
[Test]
public void ExampleTest()
{
Assert.AreEqual(2, 2);
}
}
}
预期:测试填充单元测试垫实际:空测试板。
该项目有多个要求,以便 VS for Mac 可以识别和执行测试用例。
- 该项目必须是 .NET Core 的控制台应用程序。
- 项目必须具有
Microsoft.NET.Test.Sdk
引用(VSTest 基础结构要求(。 - 项目必须具有
NUnit
的引用。 - 项目必须具有
NUnit3TestAdapter
引用(VSTest 基础结构要求(。
例
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.11.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
</ItemGroup>
</Project>
请注意,VS for Windows 和 VS for Mac(以及 JetBrains Rider(都使用 VSTest 进行单元测试,因此此设置适用于所有此类 IDE。
另请注意,如果不是从 dotnet new nunit
创建此控制台项目,而是从普通控制台应用程序模板创建,则需要手动删除 Main
方法。
NuGet 包只允许使用 NUnit 框架编写测试。换句话说,这就像添加对 NUnit DLL 的引用。
您需要安装适配器才能查看测试。
正如 lex-li 注释的那样,您应该安装适配器的 nuget 版本(https://www.nuget.org/packages/NUnit3TestAdapter/3.12.0(。
将其安装到解决方案中,最好用于所有测试项目。
(市场上的适配器是 vsix 适配器,可以安装到 VS 本身中 - 但不建议这样做,正如您指出的那样,甚至似乎不适用于 Mac 社区版本。