如何解决:NUnit单元测试未显示在Visual Studio社区(Mac)的测试板中

时间:2019-02-07 00:28:57

标签: c# visual-studio nunit

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

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

  1. Project > Add NuGet Packages...
  2. Selected NUnit Package (3.11.0) and clicked "Add Package"
  3. Checked to see if added to solution
  4. 在解决方案中创建了一个新的空类文件
  5. 在此类中添加了测试
  6. No tests show up in the test pad

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

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

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

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

3 个答案:

答案 0 :(得分:1)

NuGet软件包仅允许您使用NUnit框架编写测试。换句话说,这就像添加对NUnit DLL的引用。

您需要安装adapter才能查看测试。

答案 1 :(得分:1)

该项目有多个要求,因此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(以及JetBrains Rider)的VS都使用VSTest进行单元测试,因此此设置适用于所有此类IDE。

还请注意,如果您不是从dotnet new nunit创建此控制台项目,而是从普通的控制台应用程序模板创建的,则需要手动删除Main方法。

答案 2 :(得分:0)

作为lex-li注释,您应该安装适配器(https://www.nuget.org/packages/NUnit3TestAdapter/3.12.0)的 nuget版本
您最好将此安装到解决方案中,最好用于所有测试项目。

(市场上的适配器是vsix适配器,可以将其安装到VS本身中-但是不建议这种做法,并且如您所指出的,它甚至不适用于Mac Community版本。)