none
Démarrer une application web ASP.NET Core pointant vers .NET Framework 4.6.1 à partir d'un projet de test .NET Framework 4.6.1 RRS feed

  • Discussion générale

  • Bonjour,


    Dans le but de faire des tests d'interface utilisateur avec Selenium WebDriver 3.13.1 et NUnit 3.8.0, j'aimerais démarrer mon application web à partir de mon projet de test. 

    Mon projet de test est une librairie de classe .NET Framework 4.6.1.

    Mon application web est ASP.NET Core pointant vers .NET Framework 4.6.1.

    Les deux sont dans la même solution.


    Voici le code pour démarrer le serveur dans mon OneTimeSetup d'un de mes test.

    _server = new WebHostBuilder() .UseKestrel() .UseUrls(hostUrl) .UseContentRoot(@"Path\To\ContentRoot\Of\My\WebApp") .UseWebRoot(@"Path\To\wwwRoot\Of\My\WebApp") .UseStartup<TestStartup>() // TestStartup is in my WebApp project. .Build(); _server.Run();

    Ceci est dans son propre fil d'exécution (Thread).


    Le serveur démarre sans problème. Le problème est qu'il me répond toujours HTTP code 500 (Server error).

    J'ai donc déboguer le serveur dans ce context et j'ai découvert que l'emplacement du ExecutingAssembly se situe dans le dossier bin/Debug/net461 de mon projet de test. Bien entendu, le serveur ne trouve aucune de ses ressources à cet endroit. Cependant, je croyais qu'en définissant la location des Root(UseContentRoot, UseWebRoot), il serait capable de faire le lien. Mais il semblerait que quelque chose m'échappe.


    Voici l'exception levée lorsque le serveur essai d'envoyer une vue:

    Exception thrown: 'Microsoft.AspNetCore.Mvc.Razor.Compilation.CompilationFailedException' in mscorlib.dll

    Un petit dernier détail est que lorsque j'entre manuellement l'URL d'une des photos héberger par le serveur, ça marche.

    Qu'est ce que je ne fais pas correctement?



    mercredi 11 juillet 2018 20:13