In meinen Integrationstests verwende ich eine Klasse TestServer
, um auf eine Testserverinstanz für meine Integrationstests hinzuarbeiten. In RC1, instanziiert ich es mit dem folgenden Code:Integrationstests nach der Migration zu ASP.NET Core RC2 unterbrochen
var server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
Auf RC2 wurde TestServer.CreateBuilder() entfernt. Deshalb habe ich versucht, einen neuen Testserver mit dem folgenden Code zu erstellen:
var server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
Das Problem, das ich mit Blick auf bin ist, dass nach RC2, die Laufzeit nicht in der Lage ist Abhängigkeiten für DI zu lösen, so dass es Ausnahmen von der Konfiguration wirft Methode für die Startup-Klasse. Das System startet jedoch, wenn ich den eigentlichen Server starte (nicht das Testprojekt). Die Ausnahme ausgelöst ist, wie folgend:
System.Exception : Could not resolve a service of type 'ShikashiBot.IShikashiBotManager' for the parameter 'botManager' of method 'Configure' on type 'ShikashiBot.Startup'.
ich zur Zeit des folgenden Paket für die Test-Host mit: Microsoft.AspNetCore.TestHost": "1.0.0-rc2-final
Es klingt, als ob Sie einige Typen aus dem DI-Container vermissen. Aber der Typ kommt nicht von ASP.NET. Wahrscheinlich ist es einer Ihrer Typen 'ShikashiBot.IshikashiBotManager' –
@VictorHurdugaci, wie ich in meinem ursprünglichen Post gesagt habe, wenn das der Fall wäre, hätte meine Anwendung nicht begonnen, wenn ich es als normal begonnen hätte. Es gab auch keine Änderungen an den Elementen, die während der Migration zum DI-Container hinzugefügt wurden. – Martin
Sind Sie sicher, dass 'Program.cs' nicht in' Startup' enthalten ist? –