Testing.Net библиотека ядра с xUnit


Я создаю .Net Core Library, который может быть использован Приложением ASP.NET Core. По умолчанию Visual Studio создает проект.json как показано ниже

{
  "dependencies": {

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

Я думаю, что его рекомендуется использовать netstandard1.x для библиотек, которые будут использоваться другими приложениями. Я собираюсь удалить "imports": "dnxcore50", потому что это было для более старых версий .NET Core preview (до того, как были выпущены .NET Core 1.0 RTM и .NET Core RC2)

Теперь я хотел провести модульный тест этой библиотеки с помощью xunit , поэтому последовал статье начало работы с xUnit.net (.NET Core / ASP.NET ядро) Однако xunit предлагает пометить библиотеку как приложение .Net Core

Вы, возможно, заметили, что часть того, что мы здесь делали, - это отмечали ваш класс. библиотека как приложение .NET Core (платформа netcoreapp1.0). Когда используя .Чистый CLI для тестирования, тестовых проектов являются на самом деле приложение*, а не библиотека классов. Если вы забудете сделать это изменение, компилятор сообщит вам, что dotnet-test-xunit не совместим с вашим проект библиотеки классов. Мы говорим Visual Studio, чтобы создать библиотека классов, хотя бы потому, что она наиболее точно соответствует нашему желаемому структура проекта.

  • основная функция приложения обеспечивается xUnit.net бегун, только не ты.

Итак, я обновил проект.джосн, как и предлагалось, и я смогли запустить модульный тест. Однако у меня есть вопросы:

1> рекомендуется ли изменить целевую структуру библиотеки .Net Core с netstandard1.6 на netcoreapp1.0 когда эта библиотека может быть использована другими приложениями?

1 4

1 ответ:

У вас будет один проект (и проект.json) посвящается вашему тестовому проекту.

Необходимо отметить тестовый проект как приложение .NET Core, так как он фактически будет выполнен. Нет необходимости менять целевой проект, который является вашей библиотекой, на основное приложение.

Здесь вы можете увидеть проект .json для тестового проекта

И вот проект библиотеки