【问题标题】:Testing .Net Core Library with xUnit使用 xUnit 测试 .Net Core 库
【发布时间】:2016-08-26 19:32:57
【问题描述】:

我正在创建一个可供ASP.NET Core 应用程序使用的.Net Core Library。默认情况下,Visual Studio 创建 project.json 如下

{
  "dependencies": {

    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "version": "1.0.0-*"
}

我认为建议将netstandard1.x 用于其他应用程序将使用的库。我将删除 "imports": "dnxcore50",因为那是针对较旧的 .NET Core 预览版(在 .NET Core 1.0 RTM 和 .NET Core RC2 发布之前)

现在我想使用xunit 对这个库进行单元测试,所以按照文章Getting started with xUnit.net (.NET Core / ASP.NET Core) 但是 xunit 建议将该库标记为 .Net Core Application

您可能已经注意到我们在这里所做的部分工作是标记您的班级 库作为 .NET Core 应用程序(netcoreapp1.0 框架)。什么时候 使用 .NET CLI 进行测试,单元测试项目实际上是一个 应用程序*,而不是类库。如果您忘记进行此更改, 编译器会告诉你 dotnet-test-xunit 不兼容 与您的类库项目。我们告诉 Visual Studio 生成一个 但是,类库,因为它最接近我们想要的 项目结构。

  • 应用程序的 Main 函数由 xUnit.net 运行程序提供,而不是您提供。

所以我按照建议更新了 project.josn,并且能够运行单元测试。但是我有问题:

1> .Net Core 库的目标框架从netstandard1.6 更改为netcoreapp1.0,以便其他应用程序可以使用该库?

【问题讨论】:

    标签: .net-core xunit xunit.net project.json


    【解决方案1】:

    您将拥有一个专用于您的测试项目的项目(和 project.json)。

    您需要将 Test 项目标记为 .NET Core 应用程序,因为它实际上会被执行。 无需将作为您的库的目标项目更改为核心应用程序。

    在这里你可以看到project.json for a test project

    这里是library project

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 2018-02-20
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      相关资源
      最近更新 更多