gpt4 book ai didi

c# - xUnit - deps.json 不是为 .NetCore 3.1 [Api.deps.json' 中的集成测试创建的。该文件是功能测试正常运行所必需的。]

转载 作者:行者123 更新时间:2023-12-04 14:11:32 29 4
gpt4 key购买 nike

我有一个包含 2 个项目的 Visual Studio 解决方案,都在 .Net Core 3.1 中
XYZ.Api,
Xyz.ApiTests
ApiTests 是一个用于集成测试的 xUnit 项目。
我遵循了这里提到的内容。
Integration Tests in .NET Core
这是什么ApiTests.csproj好像

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

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.8" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.2.8" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Xyz.Api\Xyz.Api.csproj" />
</ItemGroup>
</Project>
我能够从 Visual Studio 运行测试并且它工作正常。
但是当我发布 ApiTests 项目时,它不会创建使用 .net core cli 运行测试所需的 Xyz.Api.deps.json 文件。
这是我用命令“ dotnet test Xyz.ApiTests.dll”得到的错误
System.InvalidOperationException : Can't find'D:\T\Xyz.Api.deps.json'. This file is required for functional tests to run properly. There should be a copy of the file on your source project bin folder. If that is not the case, make sure that the property PreserveCompilationContext is set to true on your project file. E.g '<PreserveCompilationContext>true</PreserveCompilationContext>'. 
我需要这样做以确保它在 Azure Pipeline 中工作。
有什么我遗漏的,还是有其他方法可以做到这一点?

最佳答案

我也面临同样的问题。没有找到任何特殊的 msbuild 参数,所以只是将它添加到我的 Tests.csproj

<Target Name="CopyDepsJsonFiles" AfterTargets="Publish">
<ItemGroup>
<DepsJsonFiles Include="$(TargetDir)*.deps.json"/>
</ItemGroup>
<Copy SourceFiles="@(DepsJsonFiles)" DestinationFolder="$(PublishDir)" />
</Target>

关于c# - xUnit - deps.json 不是为 .NetCore 3.1 [Api.deps.json' 中的集成测试创建的。该文件是功能测试正常运行所必需的。],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63914217/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com