Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# xUnit-deps.json不是为.NetCore 3.1[Api.deps.json';中的集成测试创建的。要正确运行功能测试,需要此文件。]_C#_.net_.net Core_Integration Testing_Xunit - Fatal编程技术网

C# xUnit-deps.json不是为.NetCore 3.1[Api.deps.json';中的集成测试创建的。要正确运行功能测试,需要此文件。]

C# xUnit-deps.json不是为.NetCore 3.1[Api.deps.json';中的集成测试创建的。要正确运行功能测试,需要此文件。],c#,.net,.net-core,integration-testing,xunit,C#,.net,.net Core,Integration Testing,Xunit,我有一个visual studio解决方案,包含两个项目,都在.Net Core 3.1中 Xyz.Api, Xyz.api测试 ApiTests是一个用于集成测试的xUnit项目 我遵循了这里提到的内容。 这就是ApiTests.csproj看起来的样子 <Project Sdk="Microsoft.NET.Sdk.Web"> <ItemGroup> <PackageReference Include="Micr

我有一个visual studio解决方案,包含两个项目,都在.Net Core 3.1中

Xyz.Api, Xyz.api测试

ApiTests是一个用于集成测试的xUnit项目

我遵循了这里提到的内容。

这就是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>
我需要这样做,以确保它在Azure管道中工作


是否缺少任何内容,或者是否有其他方法可以做到这一点?

尝试通过将
xunit.runner.json
文件添加到ApiTests.csproj中来禁用卷影复制

<ItemGroup>
    <None Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

因为这个原因,我的头撞在墙上好几个小时了,原因是缺少了一个变量。原因显而易见,我只是没有看到森林里的树木:

System.InvalidOperationException : 
    Can't find'/home/vsts/work/1/s/Code/.../bin/$(BuildConfiguration)/netcoreapp3.1/xxx.deps.json'. This file is required for functional ...
我没有说,
$(BuildConfiguration)
还没有定义

所以我在变量部分设置了它,一切又好了:

variables:
  tag: '$(Build.BuildId)'
  dockerRegistryServiceConnection: 'xxx'
  imageBaseName: 'xxx'
  containerRegistry: 'xxx.azurecr.io'
  BuildConfiguration: 'Release'

我也面临同样的问题。没有找到任何特殊的msbuild参数,因此只将其添加到my Tests.csproj

<ItemGroup>
    <None Include="xunit.runner.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>


在运行测试之前,您是否运行了
dotnet restore
来还原一个包?如果您是在Azure管道上谈论的,那么是的。虽然它甚至没有运行本地发布的文件,但我在使用同一功能时遇到了这种错误。如果我没记错的话,它与deps文件无关,而是与测试运行程序有关。您是否尝试过做一个简单的“dotnet测试”而不是dotnet测试xyz.apitests.dll?找到解决方案了吗?请publish.BUILD project实际将引用项目的deps.json文件复制到bin文件夹中,但publish project没有复制引用项目的deps.json文件。此解决方案不起作用。
variables:
  tag: '$(Build.BuildId)'
  dockerRegistryServiceConnection: 'xxx'
  imageBaseName: 'xxx'
  containerRegistry: 'xxx.azurecr.io'
  BuildConfiguration: 'Release'