【问题标题】:Does .NET Core work with the NUnit console runner?.NET Core 是否可以与 NUnit 控制台运行程序一起使用?
【发布时间】:2019-03-20 23:44:54
【问题描述】:

我有一个非常简单的测试!

[Test]
public void TestMethod1()
{
    Assert.IsTrue(false);
}

当我尝试使用 nunit3-console.exe 运行它时,我收到以下错误。

NUnit.Engine.NUnitEngineException : NUnit 3 驱动程序遇到一个 执行反射代码时出错。 ----> System.InvalidCastException:无法将透明代理转换为类型 'System.Web.UI.ICallbackEventHandler'。 --NUnitEngineException

我正在运行 .NET Core 2.1,带有 NUnit Console Runner 3.9NUnit 测试适配器 3.1。我确实做了谷歌搜索并得到了相互矛盾的答案。我错过了什么吗?

【问题讨论】:

  • 你应该运行dotnet test
  • 是的,那是我的下一个选择,现在正以这个角度工作。这是你的答案吗?

标签: .net-core nunit


【解决方案1】:

我联系了 NUnit 社区并得到了这个答案:Does NUnit Console work with .NET Core? #487

NUnit 控制台使用完整的 .NET Framework 编译,目前不支持 .NET Core。要从命令行运行 .NET Core 测试,您需要使用 dotnet test。有关如何执行此操作的信息,请参阅 .NET Core and .NET Standard(NUnit wiki)。

我们正在考虑创建一个基于 .NET Core 的控制台运行器,但仍处于规划阶段。

【讨论】:

  • 它还说(4 天后)"...您无需等待我们的控制台运行程序。您现在可以在 NUnit 的命令行上使用 dotnet test 。”
  • 2020 年中:主要的 (2018-10-05) Create .NET Core Console Runner #475 仍然开放。
【解决方案2】:

最近发布的 NUnit 3.11 在releases page 上说明:

PlatformAttribute 在 .NET Standard 2.0 上可用,现在可检测 .NET Core

尝试使用 NUnit 3.11。

我还在讨论 .NET Standard 和 .NET Core 支持的 NUnit 文档中找到了 this page。在我看来,粗略的阅读表明它是受支持的。

更新

有了 dotnet core Coverlet 是你的朋友。另见this

我已经转向云和 Azure DevOps。是的,它只是带有很多口红的 TFS,但它是 Cloud。 (Psst:GitHub Actions 是未来的 imo)。

这是运行我的 NUnit 测试套件的单元测试任务(在 yaml 管道中)。本质上它正在执行 dotnet test,Coverlet 与之完全集成。

# UnitTests
- task: DotNetCoreCLI@2
  displayName: 'Unit Tests'
  inputs:
    command: test
    projects: '$(APEX_SOLUTION)'
    arguments: '--no-restore -c $(BUILD_CONFIGURATION) /p:CollectCoverage=true /p:CoverletOutput=$(Agent.TempDirectory)/ /p:CoverletOutputFormat=opencover /p:Threshold=50 /p:ThresholdType=branch /p:ThresholdStat=Average /p:Exclude="[DevOpsOnboarding.Views]*"'
    testRunTitle: 'Unit Tests $(Build.DefinitionName) - $(Build.BuildNumber)'

Coverlet 还允许您一步生成 OpenCover 输出。完成此任务后,我可以运行 ReportGenerator。

应该可以直接转换为 Jenkins 批处理步骤。

【讨论】:

  • 谢谢,我去看看。我确实让 Xunit 使用它,当然还有 dotnet 测试,但只有 NUnit 安装在我的 Jenkins 测试虚拟机上(我将要求更改)
  • 让我看看是不是 CONSOLE runner/
  • 我刚刚尝试了 3.11.1(2020 年 3 月),我得到了同样的错误。
  • 我刚刚尝试使用 3.12.0(2020 年 11 月),我得到了同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多