ASP Проблемы с котельной с использованием усилий в модульном тестировании с помощью EFProf (Entity Framework Profiler)


Вопрос

Имея проблемы с использованием EFProf ( http://www.hibernatingrhinos.com/products/EFProf ) с ASP Boilerplate ( http://www.aspnetboilerplate.com/ ).

Для модульного тестирования ASP Boilerplate использует Effort ( https://github.com/tamasflamich/effort ) для издевательства базы данных в памяти.

Если я запускаю модульные тесты без добавления ссылки на EFProf, тесты выполняются корректно (зеленый).

Если я добавлю строку инициализации:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

в моей тестовой базе ctor или в инициализации моего проекта приложения (), я получаю следующую ошибку:

HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();

ComponentActivator: не удалось создать экземпляр MyApp.EntityFramework.MyAppDataContext

Внутреннее исключение имеет соответствующую информацию:

Error: Unable to cast object of type 'Effort.Provider.EffortConnection' to type 'HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledConnection'.

Усилия просто не совместимы с EFProf? Или я делаю что-то ослепительно очевидное в моей инициализации?

Принятый ответ

Отвечая на мой собственный вопрос: «Усилия» подделывают объект DbContect, но на самом деле не создают SQL для встроенной памяти, поэтому перепрофилировать нечего. Это также причина, по которой CommandText всегда имеет значение null при использовании базы данных EF6.

Я попытаюсь использовать Moq с EF6 для использования реализации базы данных в памяти для тестирования в качестве альтернативы проекту тестирования Asp Boilerplate, который использует Усиление в этой статье: https://msdn.microsoft.com/en-us/library/dn314429 (v = vs.113) .aspx





Лицензировано согласно: CC-BY-SA
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему