c# - 如何修复:NUnit 单元测试未显示在 Visual Studio 社区 (Mac) 的测试板中
问题描述
尽管将 NuGet 中的 NUnit 添加到现有的 .Net Core 项目中,但测试板中没有显示任何单元测试。
注意:我将这些图像作为链接发布,因为我的声誉太低而无法发布图像。那是怎么回事?
- 项目 > 添加 NuGet 包...
- 选择 NUnit 包 (3.11.0) 并单击“添加包”
- 检查是否添加到解决方案中
- 在解决方案中创建了一个新的空类文件
- 向此类添加了测试
- 测试板中未显示任何测试
我尝试重新启动 Visual Studio 并重新安装包。
我也尝试过删除 Project/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>
请注意,适用于 Windows 的 VS 和适用于 Mac 的 VS(以及 JetBrains Rider)都使用 VSTest 进行单元测试,因此此设置适用于所有此类 IDE。
另请注意,如果您不是从 中创建此控制台项目dotnet new nunit
,而是一个普通的控制台应用程序模板,则需要手动删除该Main
方法。
推荐阅读
- ios - tableviewcell 的 isSelected 方法和 tableview 的 selectRow(at:animated:scrollPosition:) 有什么区别
- python-3.x - Python xml.etree.ElementTree 问题,Element.tag 让我得到的不仅仅是标签名称
- python - 为什么我要列出的数据框列给出元组,而不是简单的列表
- sql - 在独立的 zeppelin 中启动 thrift 服务器
- java - 如何通过列表
在 java 中带有 paramType="body" 的 swagger 注释中 - javascript - 大小为 8x8 的 2D Array,第一列实际上是最后一列
- laravel-7 - Walmart Api 与 Laravel 7 和自动数字签名创建的集成
- javascript - 如何在反应钩子中创建可重用状态?
- javascript - 如何解决鼠标悬停在图表上会出现旧数据/图表的问题?
- python - 训练准确率 100%,验证准确率不变