Я пытаюсь получить классы С# для контроллера, модели и репозитория (доступа к данным) под unit test, в Visual Studio 2015, с ASP.NET Core MVC (ASP.NET 5 во время предварительного просмотра, теперь называемого ASP.NET Core).
У меня есть следующая структура:
   Solution
       |
      src
       | 
       |-- ITConsole       <- main app (ASP.NET MVC, DNX 4.5.1)
       | 
       `-- ITConsoleTests  <- What kind of project should this be?
MainApp использует DNX 4.5.1, но кажется, что если я создам стандартное приложение nUnit Unit test, оно будет доступно только как классическая библиотека классов .NET Framework, нацеленная на .NET Framework 4.5.2, а не как Библиотека веб-класса, которая может работать с моим основным приложением.
Итак, на всякий случай он может работать как классический .NET framework. Проект framework (.net assembly). Я попытался вручную найти и добавить ссылки (путем добавления ссылки и просмотра), чтобы получить .NET. зависимости для решения. Я знаю, что ссылки на сборку .NET печально не транзитивны. Поэтому, если у UnitTest.dll есть ссылка на MainApp.dll, а MainApp.dll зависит от ASP.NET MVC и всего остального, от которого это зависит, я должен сделать это сам. Это то, что я пытаюсь сделать. Я добавил ссылку на C:\dev\Demo\ITConsole\artifacts\bin\ITConsole\Debug\dnx451\ITConsole.dll в мой проект Unit test, чтобы я мог начать компилировать код. Классы Unit test компилируются, но они не запускаются, вероятно, из-за беспорядка попытки добавить ссылку на ASP.NET.
Прямо сейчас, хотя я добавил ссылку на Common.Logging.Core и Common.Logging, когда я нажимаю "Запустить все" в тестовом проводнике, я получаю эту ошибку:
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 manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
(В то время, когда задавался этот вопрос...) Ни один из шаблонов предварительного просмотра asp.net 5 mvc не может генерировать для вас модульные тесты. Можете ли вы даже Unit test блестящее новое приложение ASP.NET Core? См. Снимок экрана ниже, например, о том, как обычный способ, которым вы начинаете модульное тестирование, недоступен в VS 2015 с использованием MSTEST.

