Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

170
Visualizações
Falta el archivo Deps para las pruebas de integración de Dotnet 6

Antes de comenzar, probé todas las sugerencias de las siguientes y ninguna funcionó:

Prueba de integración ASP.NET Core con .NET Framework: no se puede encontrar deps.json

https://zimmergren.net/unable-to-find-deps-json-dotnet-azure-devops/


Así que estoy tratando de escribir algunas pruebas de integración para dotnet 6. Sin embargo, mi WebApplicationFactory arroja el siguiente error:

System.InvalidOperationException: no se puede encontrar '/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/bin/Debug/net6.0/...

System.InvalidOperationException No se puede encontrar '/repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/bin/Debug/net6.0/testhost.deps.json'. Este archivo es necesario para que las pruebas funcionales se ejecuten correctamente. Debe haber una copia del archivo en la carpeta bin del proyecto de origen. Si ese no es el caso, asegúrese de que la propiedad PreserveCompilationContext esté establecida en verdadero en su archivo de proyecto. Por ejemplo, 'verdadero'. Para que las pruebas funcionales funcionen, deben ejecutarse desde la carpeta de salida de compilación o el archivo testhost.deps.json del directorio de salida de su aplicación debe copiarse en la carpeta donde se ejecutan las pruebas. Una causa común de este error es tener habilitadas las instantáneas cuando se ejecutan las pruebas. en Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1.EnsureDepsFile() at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1.EnsureServer() en Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1.CreateDefaultClient(DelegatingHandler[] handlers) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers) en Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1.CreateClient(WebApplicationFactoryClientOptions options) at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory 1. CreateClient() en SubscriptionInfoApi.Tests.Integration.UnitTest1.Test1() en /repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/UnitTest1.cs:línea 14 en SubscriptionInfoApi.Tests.Integration.UnitTest1.Test1( ) en /repos/subscription-info-api/tests/SubscriptionInfoApi.Tests.Integration/UnitTest1.cs:line 16 en Xunit.Sdk.TestInvoker 1.<>c__DisplayClass48_0.<<InvokeTestMethodAsync>b__1>d.MoveNext() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 264 --- End of stack trace from previous location --- at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func 1 asyncAction) en / /src/xunit.execution/Sdk /Frameworks/ExecutionTimer.cs:line 48 en Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) en / /src/xunit.core/Sdk/ExceptionAggregator.cs:line 90

Mi código de prueba real es extremadamente simple:

 [Fact] public async Task Test1() { await using var app = new WebApplicationFactory<Program>(); using var client = app.CreateClient(); var res = await (await client.GetAsync("/alive-test")).Content.ReadAsStringAsync(); Assert.Equal("Alive!", res); }

Según las sugerencias, me aseguré de hacer referencia directa a Microsoft.AspNetCore.Mvc.Testing -> 6.0.0 en mi proyecto de pruebas de integración. También probé los diversos ajustes a los archivos .csproj que se sugirieron, pero nada parece funcionar.

Estoy atascado en cosas para tratar de depurar esto aún más, ¿alguna idea?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Probablemente esté apuntando al espacio de nombres incorrecto para el Programa en su archivo de prueba (como yo).

Tuve que agregar lo siguiente al final de mi archivo Program.cs (última línea) para hacerlo visible para mis proyectos de prueba que lo necesitan:

 public partial class Program { }

Puede encontrar un ejemplo aquí: ejemplo de prueba mínima de API

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema, aunque por una razón completamente diferente.

Estoy usando .net 6 pero elegí deliberadamente usar una implementación que en realidad tiene un archivo Program.cs . Cuando copié el código de la guía oficial de prueba de integración de MS , dejé que VS extrajera todas las dependencias. La dependencia utilizada para resolver Program.cs no era mía ( PersonalSite por el bien de esta respuesta), sino una de la propia implementación de MS:

ingrese la descripción de la imagen aquí

Un pequeño error de mi parte, claro, pero tal vez pueda ayudar a alguien.

Para aquellos que realmente necesitan el truco de implementación de clase parcial, la guía de prueba de integración de MS que vinculé enumera las pautas para hacer precisamente eso.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda