c# - test - Pruebas de integración de ASP.Net Core
integration test xunit (1)
Escribí una publicación de blog sobre pruebas de integración (que no cubre MVC), y ''Snow Crash'' comentó con un problema similar. Solucionaron el error "no encontrado" con el siguiente código:
var path = PlatformServices.Default.Application.ApplicationBasePath;
var setDir = Path.GetFullPath(Path.Combine(path, <projectpathdirectory> ));
var builder = new WebHostBuilder()
.UseContentRoot(setDir)
.UseStartup<TStartup>();
La publicación del blog está aquí Introducción a las pruebas de integración con xUnit y TestServer en ASP.NET Core .
Estoy luchando para obtener cualquier tipo de pruebas de integración que funcionen con ASP.Net Core RC2. He creado un proyecto web básico que funciona bien en el navegador que muestra la página predeterminada como se esperaba. Luego agregué una nueva clase (en el mismo proyecto) con el siguiente código de prueba:
[TestClass]
public class HomeControllerTests
{
private HttpClient client;
[TestInitialize]
public void Initialize()
{
// Arrange
var host = new WebHostBuilder()
.UseEnvironment("Development")
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>();
TestServer server = new TestServer(host);
client = server.CreateClient();
}
[TestMethod]
public async Task CheckHomeIndex()
{
string request = "/";
var response = await client.GetAsync(request);
response.EnsureSuccessStatusCode();
Assert.IsTrue(true);
}
}
La prueba no pasa, con la siguiente excepción:
La vista ''Índice'' no se encontró. Se realizaron búsquedas en los siguientes lugares:
/Views/Home/Index.cshtml
/Views/Shared/Index.cshtml
Estoy usando MSTest en lugar de xUnit en esta etapa. Cambiar el ContentRoot a lo sugerido en la pregunta "duplicada" desafortunadamente no resuelve el problema.
¿Alguien ha hecho funcionar las pruebas de integración? Intenté modificar la configuración de WebHostBuilder
pero sin suerte.