Próbuję uzyskać kontroler, model i repozytorium (dostęp do danych) klasy C# w ramach testu jednostkowego, w Visual Studio 2015, z ASP.NET Core MVC (ASP.NET 5 podczas podglądu, teraz nazywane ASP.Net Core) aplikacje.W jaki sposób jednostka testuje kontroler lub obiekt modelu ASP.NET Core?
Mam następującą strukturę:
Solution
|
src
|
|-- ITConsole <- main app (ASP.NET MVC, DNX 4.5.1)
|
`-- ITConsoleTests <- What kind of project should this be?
MainApp korzysta DNX 4.5.1, ale wydaje się, że jeśli utworzyć standardową aplikację testową NUnit jednostka, jest ona dostępna jedynie jako klasa ramowego klasyczny .NET biblioteka, programowanie .NET Framework 4.5.2, a nie biblioteka klasy WWW, która może współpracować z moją główną aplikacją.
Tak więc na wypadek, gdyby mógł działać jako klasyczny projekt ramowy .NET Framework Microsoft (zestaw .net), próbowałem ręcznie znaleźć i dodać referencje (przez dodanie odwołania i przeglądanie), aby uzyskać .NET zależności do rozwiązania. Jestem świadomy, że odwołania do zestawu .NET są niestety przechodnie. Więc jeśli UnitTest.dll ma odniesienie do MainApp.dll, a MainApp.dll zależy od ASP.NET MVC, i wszystko inne, od czego to zależy, muszę to zrobić sam. Właśnie to próbuję zrobić. Dodałem odwołanie do C:\dev\Demo\ITConsole\artifacts\bin\ITConsole\Debug\dnx451\ITConsole.dll
do mojego projektu testu jednostki, więc mogłem zacząć tworzyć kod do kompilacji. Klasy testów jednostkowych są kompilowane, ale nie działają, prawdopodobnie z powodu problemu z dodaniem odwołania do ASP.NET.
Teraz, mimo że zostały dodane odniesienie do Common.Logging.Core i Common.Logging, gdy klikam "Run All" w eksploratorze testów otrzymuję ten błąd:
Test Name: TestStudyLogReadDocument
Test FullName: ITConsoleTests.ITConsoleTestStudyLog.TestStudyLogReadDocument
Test Source: C:\dev\Demo\ITConsole\ITConsoleTests\ITConsoleTestStudyLog.cs : line 52
Test Outcome: Failed
Test Duration: 0:00:00.0712058
Result StackTrace:
at Couchbase.Configuration.Client.ClientConfiguration..ctor()
at ITConsole.Repository.StudyLogRepository..ctor() in C:\dev\Demo\ITConsole\src\ITConsole\Repository\StudyLogRepository.cs:line 39
at ITConsoleTests.ITConsoleTestStudyLog.SetupDb() in C:\dev\Demo\ITConsole\ITConsoleTests\ITConsoleTestStudyLog.cs:line 30
at ITConsoleTests.ITConsoleTestStudyLog.TestStudyLogReadDocument() in C:\dev\Demo\ITConsole\ITConsoleTests\ITConsoleTestStudyLog.cs:line 53
Result Message:
Test method ITConsoleTests.ITConsoleTestStudyLog.TestStudyLogReadDocument threw exception:
System.IO.FileLoadException: Could not load file or assembly 'Common.Logging.Core, Version=3.1.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
(W tym czasie zadano pytanie ...) Żaden z szablonów podglądu asp.net 5 mvc nie może wygenerować testów jednostkowych dla ciebie. Czy możesz nawet przetestować nową, błyszczącą aplikację ASP.NET Core? Zobacz zrzut ekranu poniżej, na przykład jak normalny sposób rozpoczęcia testów jednostkowych nie jest dostępny w VS 2015 przy użyciu MSTEST.
pytanie "kiedy będzie naprawić swój produkt" pytanie tutaj: https://social.msdn.microsoft.com/Forums/vstudio/en-US/6bf553bc-2bbb-4f2e-a7aa -72c8d9b74852/kiedy-będzie-można-móc-testować-urządzenia-w-wizualnym-studio-2015-z-aspnet-mvc6? Forum = vsunittest –
Wierzę, że to będzie działać do połowy września, kiedy Beta8 będzie na zewnątrz. –
W międzyczasie spróbuj tego: http://xunit.github.io/docs/getting-started-dnx.html –