Исправление предупреждений сборки для C#/.NET

Исправление предупреждений сборки для C#/.NET #

В этой статье описаны некоторые рецепты по устранению предупреждений сборки, возникающих в студенческих проектах.

Устранение предупреждения в библиотеках классов для тестов #

Если у вас есть библиотеки, используемые только в тестах, то вы можете при запуске тестов сталкиваться с предупреждением вида:

.../Microsoft.TestPlatform.targets(48,5): warning В .../tests/TestsLibrary/bin/Debug/net10.0/TestsLibrary.dll нет доступных тестов. Убедитесь, что средства обнаружения и выполнения тестов зарегистрированы, а также проверьте правильность параметров платформы и версии платформы, после чего повторите попытку.

Здесь проект tests/TestsLibrary/TestsLibrary.csproj считается проектом с тестами, хотя на деле это библиотека классов для тестов.

Для исправления предупреждения вам нужно:

  1. Убрать зависимость TestsLibrary.csproj от xunit.runner.visualstudio
  2. Добавить свойство <IsTestProject>false</IsTestProject>

Исправленный файл TestsLibrary.csproj может выглядеть примерно так:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <IsTestProject>false</IsTestProject>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.4" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
    <PackageReference Include="xunit" Version="2.9.3" />
  </ItemGroup>

  <!-- ... -->

</Project>