如何在Visual Studio 2017中运行NUnit测试?

175
我刚安装了Visual Studio 2017。我有一个使用NUnit进行测试用例的项目。按下Ctrl + R - T不再运行测试,Test Explorer也不再找到任何标记为TestCase属性的测试用例。
是否有办法让NUnit运行,或者可以找到更新?
我已经通过NuGet Package Manager重新安装了最新版本的NUnit,但没有改善。

就是这样。我需要重新安装NUnitTestAdapter。你能把它提交为解决方案吗? - user2286552
2
你已经安装了NUnit,对吧?现在你需要安装NUnit3TestAdapter,在VS 2017中运行NUnit测试。 - Ripon Al Wasim
2
为什么这也被标记为2019年? - StayOnTarget
9个回答

216
请将 NUnit 测试适配器 NuGet 包添加到您的测试项目中: 或者安装 Test Adapter Visual Studio 扩展,其中包括: 我更喜欢使用 NuGet 包,因为它将与您的项目使用的 NUnit 版本保持同步,并且将自动匹配任何构建服务器中使用的版本。

3
太棒了!在我的VS 2017上运行成功。如果安装了测试适配器2.0,则需要匹配更新Nuget包NUnit 2.x.x版本。如果是测试适配器3.0,则需要将Nuget包更新到3.x.x版本。感谢@jessehouwing。 - Anand Gangadhara
21
请确保你已经引用了Microsoft.NET.Test.Sdk,至少当你的项目面向.NET Core时。我忽略了这一点,没有添加该引用。 - Dan Jagnow
5
我曾经被这个问题困扰了相当长的一段时间,因为没有一个解决方案有效。后来我从 这里 的一行内容中发现,目标为“.NET Standard”的类库不起作用,测试项目必须使用.NET Core作为目标版本。此外,需要安装Microsoft.NET.Test.Sdk NuGet。 - Arghya C
3
值得一提的是,选择NUnit测试适配器NuGet包的另一个好处是你的同事不需要安装任何VS扩展。而且你的构建服务器也不需要安装额外的组件。 - Jim Aho
1
我已经安装了两个,但是不知道如何运行这些测试。查看了“视图/其他窗口”,但找不到NUnit测试资源管理器。 - Sonic Soul
显示剩余2条评论

42

您需要安装NUnitTestAdapter。最新版本的NUnit是3.x.y(3.6.1),您应该与NUnit 3.x.y一起安装NUnit3TestAdapter。

要在Visual Studio 2017中安装NUnit3TestAdapter,请按照以下步骤进行:

  1. 右键单击菜单项目→从上下文菜单中单击"管理NuGet程序包..."
  2. 转到浏览选项卡并搜索NUnit
  3. 选择NUnit3TestAdapter→点击右侧的安装→从预览弹出窗口中点击确定

Enter image description here


你也可以从VS的项目菜单中打开“NuGet包管理器”。 - Ripon Al Wasim

26

这个帮了我很多:

使用NUnit开始进行.NET单元测试

基本操作如下:

  • 在NuGet中添加NUnit 3库。
  • 创建要测试的类。
  • 创建一个单独的测试类。 这应该在其上方有[测试套件]。
  • 测试类中创建一个函数。 这应该在其上方有[测试]。
  • 然后进入TEST/WINDOW/TEST EXPLORER(顶部菜单)。
  • 点击左侧的运行按钮。 它会告诉你已经通过和未通过的内容。

我的示例代码在此处:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;

namespace NUnitTesting
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }

    public class Maths
    {
        public int Add(int a, int b)
        {
            int x = a + b;
            return x;
        }
    }

    [TestFixture]
    public class TestLogging
    {
        [Test]
        public void Add()
        {
            Maths add = new Maths();
            int expectedResult = add.Add(1, 2);
            Assert.That(expectedResult, Is.EqualTo(3));
        }
    }
}

这将返回true,如果你更改Is.EqualTo中的参数,它将失败,等等。


当我执行test/windows/test explorer时,什么都没有被发现。 - ctrl-alt-delor
Ctrl-alt-del或者这是Visual Studio 2019中的Test/TestExplorer,这可能是Microsoft最近进行的一个微小更改。 - Lee

20

您需要安装三个NuGet软件包:

  • NUnit
  • NUnit3TestAdapter
  • Microsoft.NET.Test.Sdk

2
这是唯一可靠的解决方案,如果您尝试在未创建的项目中运行测试。VS扩展将会默默失败。 - Josh Noe

10
  • 在Visual Studio中,您需要选择单元测试的处理器架构: 菜单测试测试设置默认处理器架构

  • 必须打开“测试适配器”才能查看测试内容(例如,在Visual Studio:菜单测试Windows测试资源管理器)。


要了解更多信息,请考虑在Visual Studio的“输出窗口”中选择下拉菜单“显示来自”并设置为“Tests”。


2
非常重要的答案,非常感谢,设置正确的“默认处理器架构”解决了问题。 - Nikita Danilov

2
对于使用Visual Studio 2019遇到问题的人:
我首先需要打开“测试”→“窗口”→“测试资源管理器”,然后从那里运行测试,才能在右键菜单中看到运行/调试测试的选项。

1
使用CLI创建一个NUnit项目非常容易。模板会为您完成所有操作。
dotnet new -i NUnit3.DotNetNew.Template
dotnet new nunit

在 .NET Core 中,这绝对是我首选的方法。

1
从管理Nunit包中为您的测试项目安装NUnit和NunitTestAdapter软件包,以执行以下操作: 1.右键单击菜单“项目”->单击“管理NuGet包”。 2.转到“浏览”选项卡->搜索Nunit(或任何其他要安装的软件包)。 3.单击包->侧屏幕将打开“选择项目并单击安装”。
执行您的任务(添加代码) 如果您的项目是控制台应用程序,则顶部会显示播放/运行按钮,单击该按钮即可运行您的应用程序。如果您的应用程序是类库,请转到测试资源管理器并单击“运行全部”选项。

0

在Visual Studio 2017中运行或调试测试,我们需要安装“NUnit3TestAdapter”。我们可以在任何版本的Visual Studio中安装它,但它在Visual Studio“社区”版本中正常工作。

要安装此程序,您可以通过NuGet包添加它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接