4

我正在创建一个.Net Core Library可供应用程序使用的ASP.NET Core应用程序。默认情况下,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所以按照文章开始使用 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

4

1 回答 1

3

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

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

在这里你可以看到一个测试项目的 project.json

这里是图书馆项目

于 2016-08-27T11:24:44.180 回答