如何 运行 nunit 测试 asp.net 5 个项目,尤其是 ReSharper?

How to run nunit tests with asp.net 5 projects, especially with ReSharper?

我正在开发针对 dnx451 的 asp.net 5 应用程序。

asp.net 5 项目依赖于一些带有为 nunit 2.x 编写的单元测试的库。所以对我来说合理的选择是使用 nunit 来测试 asp.net 5 项目。

当我 运行 在 ReSharper 中进行单元测试时,ReSharper 会显示 "Test not run" 和附加消息 "System.IO.FileNotFoundException: Could not load file or assembly xxx "。

nunit 2.6.4 和 3.0.0-beta-2 都会产生相同的错误。

有人针对 dnx 项目成功 运行 nunit 测试吗?

ReSharper 目前不支持 DNX 测试。这是一个全新的执行模型,尚未针对 ReSharper 实施。我希望在 DNX 和 asp.net 稳定并接近发布时看到支持。此外,我不认为 nunit 本身支持 运行 作为 DNX 测试运行器 - xunit 团队有一个单独的项目可以插入 DNX:https://github.com/xunit/dnx.xunit

NUnit 不支持 DNX 内核。

关注这个issue,看看nunit什么时候加入dnx支持。 https://github.com/nunit/nunit/issues/575

看起来 NUnit 从 v3.0.0-RC 开始有(部分)支持 http://www.alteridem.net/2015/11/04/testing-net-core-using-nunit-3/

希望,通过说 "Especially with ReSharper",您的意思是您想知道如何 运行 NUnit 测试,如果可能的话,使用 ReSharper。话虽这么说,这里是如何在 Visual Studio 中针对 ASP.NET 核心(以前称为 ASP.NET 5)运行 NUnit 测试而不需要 ReSharper:

  1. 添加一个新项目并选择控制台应用程序(.NET Core)。尝试使用 class 个库目前会报错。
  2. 添加最新版本的 dotnet-test-nunit NuGet 包(确保 Include prerelease 被勾选,否则你赢了'在 NuGet 提要中找到它)
  3. 添加最新版本的 NUnit NuGet 包。
  4. 编辑 project.json 并添加此行:"testRunner": "nunit",

现在您可以 运行 您的测试,方法是从 Visual Studio 菜单中选择 测试 - 运行 - 所有测试

您的 project.json 文件应如下所示:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "dotnet-test-nunit": "3.4.0-beta-1",
    "ProjectUnderTest": "1.0.0-*",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    },
    "NUnit": "3.4.1"
  },
  "testRunner": "nunit",

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}