c# - 为什么测试资源管理器看不到我的 ASP.NET Core MVC 的 NUnit 测试?

标签 c# asp.net-core nunit

Visual Studio 2017,.Net CoreApp 1.1(目标框架)

我需要为我的 ASP.NET Core MVC 网络应用程序编写 NUnit 测试。我经常将 NUnit 用于基于 .NET Framework 3.5-4.6.1 构建的桌面项目。

xunit 没有问题,但我想使用 nunit

Here我看到在当前情况下我要包含这样的 NuGet 包:

  • dotnet-test-nunit
  • NUnit

但是测试资源管理器看不到我的测试:

[TestFixture]
public class ProductTests {

    [Test]
    public void Name_Gets_ValidValue() {

        var name = "Bob";
        decimal price = 45.5M;

        Product p = new Product() { Name = name, Price = price };

        Assert.AreEqual(name, p.Name);
    }

    [Test]
    public void Name_Gets_ValidPrice() {

        var name = "Bob";
        decimal price = 45.5M;

        Product p = new Product() { Name = name, Price = price };

        Assert.AreEqual(price, p.Price);
    }
}

嗯……好的。我尝试添加 NUnit3TestAdapter NuGet 包(我一直使用它),但这个问题并没有消失。

我该如何解决?

最佳答案

当 .NET Core 从 project.json 格式切换到 csproj 格式时,它放弃了对原始 .NET Core 测试适配器 API 的支持,因此 dotnet-test-nunit 适配器不再适用于 Visual Studio 2017 或新的 .NET Core 命令行工具。

新的 csproj 格式使用旧的 Visual Studio 测试适配器 API,因此 NUnit 团队需要更新该测试适配器以支持 .NET Core。这项工作几乎在两个 PR 中完成,一个用于 Visual Studio adapter。一个用于 NUnit Engine .

合并这两个拉取请求后,我将创建更新适配器的 alpha 版本,希望能在下周进行。一旦这样做,我将使用为 .NET Core 设置单元测试的新方法更新我的博客。同时,您可以 make your unit tests self-executing using NUnitLite .

对于给您带来的不便,我们深表歉意,我们花了比预期更长的时间来移植到 .NET Core。

更新:我发布了支持 .NET Core 的 NUnit Visual Studio Adapter 更新。有关如何使用它的信息,请参阅 Testing .NET Core with NUnit in Visual Studio 2017

关于c# - 为什么测试资源管理器看不到我的 ASP.NET Core MVC 的 NUnit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43494462/

相关文章:

c# - 从数据库加载更多项目

c# - 将字段标记为具有属性 [XmlElement] 的 IsRequired

asp.net-core - Microsoft.EntityFrameworkCore.InMemory 存在日志异常问题

asp.net - 如何对 UrlHelper 自定义帮助器方法进行单元测试

c# - 我应该明确断言计数还是结果?

c# - 以编程方式启用 IIS 角色和功能

C#:加载 C++ DLL 时出现问题

asp.net-core - ASP.NET 5 复杂 TagHelper

c# - Entity Framework Core 忽略 .Include(..) 而没有 .ToList(..) 间接

c# - 如何使用 [Setup] 中的实例化对象以及 NUnit 中的 [Test] 和 Selenium WebDriver C# 而不会出现 Null Reference Exception