如何修复:NUnit单元测试未显示在Visual Studio Community(Mac)的测试板中



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

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

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

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

我也尝试删除项目/obj 目录 - 仍然没有运气。

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

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

该项目有多个要求,以便 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>

请注意,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 社区版本。

最新更新