首页 > 解决方案 > 如何修复:NUnit 单元测试未显示在 Visual Studio 社区 (Mac) 的测试板中

问题描述

尽管将 NuGet 中的 NUnit 添加到现有的 .Net Core 项目中,但测试板中没有显示任何单元测试。

注意:我将这些图像作为链接发布,因为我的声誉太低而无法发布图像。那是怎么回事?

  1. 项目 > 添加 NuGet 包...
  2. 选择 NUnit 包 (3.11.0) 并单击“添加包”
  3. 检查是否添加到解决方案中
  4. 在解决方案中创建了一个新的空类文件
  5. 向此类添加了测试
  6. 测试板中未显示任何测试

我尝试重新启动 Visual Studio 并重新安装包。

我也尝试过删除 Project/obj 目录——仍然没有运气。

using NUnit.Framework;
namespace ExampleLib
{
    [TestFixture]
    public class ExampleTestFixture
    {
        [Test]
        public void ExampleTest()
        {
            Assert.AreEqual(2, 2);
        }
    }
}

预期:测试填充单元测试垫实际:空测试垫。

标签: c#visual-studionunit

解决方案


该项目有多个需求,因此 VS for Mac 可以识别和执行测试用例。

  1. 该项目必须是 .NET Core 的控制台应用程序。
  2. 该项目必须有一个参考Microsoft.NET.Test.Sdk(VSTest 基础设施要求)。
  3. 该项目必须有一个参考NUnit
  4. 该项目必须有一个参考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方法。


推荐阅读