如何在ASP.NET 5项目中使用NUnit测试,特别是使用ReSharper?

5
我正在开发一个针对dnx451的asp.net 5应用程序。
asp.net 5项目依赖一些使用nunit 2.x编写单元测试的库。因此,对于我来说,合理的选择是使用nunit来测试asp.net 5项目。
当我在ReSharper中运行单元测试时,ReSharper显示“未运行测试”,并附加消息“System.IO.FileNotFoundException:无法加载文件或程序集xxx”。
nunit 2.6.4和3.0.0-beta-2都会产生相同的错误。
有人已经成功地对dnx项目运行nunit测试吗?

1
可能是如何在使用ReSharper的DNX项目中运行xUnit 2.1.0-beta-*的重复问题。 - Victor Hurdugaci
2
这不是重复的~~~ 这个是针对xUnit的,另一个是针对NUnit的。 - Smartkid
4个回答

3

目前ReSharper不支持DNX测试。DNX是一种全新的执行模型,还没有被ReSharper实现。我期望在DNX和asp.net稳定并接近发布时会有支持。此外,我认为nunit本身不支持作为DNX测试运行器来运行 - xunit团队有一个单独的项目来插入DNX:https://github.com/xunit/dnx.xunit


更糟糕的是,如果您为项目启用生成输出(自动NuGet打包部分),实际程序集几乎在ReSharper期望它们的位置上 - 只差一个文件夹。 - sunside
嘿,Matt - 这个有什么进展吗?https://github.com/nunit/nunit/issues/575 已经完成了,所以我想知道 Resharper 对其的支持情况。 - Dbl
我正在处理这个问题!ReSharper将支持运行DNX测试。目前的计划是仅发现和运行xunit测试,mstest或nunit测试将被忽略(甚至在编辑器中也不会被发现,因为我们无法运行它们)。我理解nunit问题的方式是它可以在CoreCLR / DNX下运行,但并不像xunit运行程序那样是一个DNX运行程序。据我所知,nunit仍然需要实现DNX运行程序集成。如果我错了,请纠正我 :) - citizenmatt

0
希望你说“特别是使用ReSharper”是想知道如何运行NUnit测试,如果可能的话,还要用ReSharper。话虽如此,以下是在Visual Studio中如何运行ASP.NET Core(以前称为ASP.NET 5)的NUnit测试而不需要ReSharper的方法:
  1. 添加一个新项目并选择控制台应用程序(.NET Core)。尝试使用类库将会报告错误。
  2. 添加最新版本的dotnet-test-nunit NuGet包(确保选中了包括预发布版,否则你将无法在NuGet feed中找到它)
  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"
    }
  }
}

0

0

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