Podczas testów integracji używam klasy TestServer
do pracy w instancji serwera testowego dla moich testów integracji. W RC1, ja instanciated go za pomocą następującego kodu:Testy integracyjne zepsute po migracji do środowiska ASP.NET Core RC2
var server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
Na RC2, TestServer.CreateBuilder() została usunięta. Dlatego starałem się stworzyć nową TestServer stosując następujący kod:
var server = new TestServer(new WebHostBuilder().UseStartup<Startup>());
Problem jestem stoi to, że po RC2, środowisko wykonawcze nie jest w stanie rozwiązać problemów z zależnościami dla DI, tak, że rzuca wyjątki na Configure metoda dla klasy Początek. System uruchamia się jednak, jeśli uruchomię właściwy serwer (nie projekt testowy). Wyjątek rzucony jest w następujący sposób:
System.Exception : Could not resolve a service of type 'ShikashiBot.IShikashiBotManager' for the parameter 'botManager' of method 'Configure' on type 'ShikashiBot.Startup'.
obecnie używam następujący pakiet dla hosta testu: Microsoft.AspNetCore.TestHost": "1.0.0-rc2-final
Wygląda na to, że brakuje niektórych typów z pojemnika DI. Ale typ nie pochodzi z ASP.NET. Prawdopodobnie jest to jeden z twoich typów 'ShikashiBot.IShikashiBotManager' –
@VictorHurdugaci, tak jak powiedziałem w moim oryginalnym wpisie, jeśli tak było, moja aplikacja nie wystartowałaby, gdybym zaczął normalnie. Nie wprowadzono również zmian w elementach dodanych do kontenera DI podczas migracji. – Martin
Czy na pewno nie ma czegoś w 'Program.cs', którego nie ma w' Uruchomieniu'? –