Я занимаюсь разработкой библиотеки, в которой есть тестовый проект в решении.Библиотека использует несколько фреймворков из .NET-юниверса (например, net462 или netcoreapp2.0) и отлично работает.В настоящее время тестовый проект использует netcoreapp2.1 и последнюю платформу NUnit и программу запуска тестов.
У меня есть тесты, основанные на файлах, которые включены в тестовый проект и копируются в выходную папку в процессе сборки.Когда тестовый проект использует .NET Core в качестве целевой платформы, файлы обнаруживаются и тесты проходят.Когда в тестовом проекте используется что-то еще, кроме .NET Core (я не тестировал все версии .NET Framework, но некоторые из них), файлы не найдены и тесты не пройдены.
Когда не используется .NET Core,рабочий каталог тестового бегуна, кажется, расположен в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\
, который не является выходным каталогом проекта.
Это не рабочий файл проекта
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<OutputPath>bin\Release\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>bin\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="NUnit" Version="3.10.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
</ItemGroup>
</Project>
И это рабочий проектfile
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<OutputPath>bin\Release\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>bin\Debug\</OutputPath>
</PropertyGroup>
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
<PackageReference Include="NUnit" Version="3.10.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.10.0" />
</ItemGroup>
</Project>
Кто-нибудь знает больше об этом поведении?Как мне это исправить?