我有一些集成测试,运行一个在同一个解决方案中生成的可执行文件,使用
我想将测试项目依赖于生成可执行文件的项目(但不链接到它),我尝试过以下方式:
但是当我在测试中运行可执行文件时,它会出现以下错误:
Process.Start
。测试项目和exe都是net core 3.0应用程序。我想将测试项目依赖于生成可执行文件的项目(但不链接到它),我尝试过以下方式:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.0.0" />
<PackageReference Include="MSTest.TestFramework" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TestExe\TestExe.csproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
</Project>
但是当我在测试中运行可执行文件时,它会出现以下错误:
发生致命错误。执行应用程序所需的库“hostpolicy.dll”未在“C:\ Program Files \ dotnet”中找到。
当我检查测试项目的输出目录时,我注意到依赖项的exe输出目录中缺少TestExe.runtimeconfig.json
文件。将此文件手动复制到测试项目输出目录可以解决问题。
如何正确表达此依赖关系,以便所有必要的文件都最终出现在测试项目输出目录中?