ASP EFProf (Entity Framework Profiler)를 사용한 단위 테스트에서 노력을 사용하여 보일러 플레이트 문제

asp.net-boilerplate effort entity-framework entity-framework-6 unit-testing

문제

ASP Boilerplate ( http://www.aspnetboilerplate.com/ )에서 EFProf ( http://www.hibernatingrhinos.com/products/EFProf )를 사용하는 데 문제가 있습니다.

유닛 테스트를 위해 ASP Boilerplate는 데이터베이스 내부 메모리 조롱을 위해 Effort ( https://github.com/tamasflamich/effort )를 사용합니다.

EFProf에 대한 참조를 추가하지 않고 단위 테스트를 실행하면 테스트가 올바르게 실행됩니다 (녹색).

초기화 줄을 추가하면 :

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

내 테스트 기본 ctor 또는 내 응용 프로그램 프로젝트의 Initialize (), 다음 오류가 발생합니다.

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을 만들지 않습니다, 따라서 거기에 아무것도 프로필러에 의해 가로 챌 것입니다. 또한 EF6의 Database.Log를 Effort와 함께 사용할 때 CommandText가 항상 null 인 이유이기도합니다.

이 기사에서 Effort를 사용하는 Asp Boilerplate의 테스트 프로젝트 대신 테스트 용 메모리 내장 데이터베이스 구현을 사용하려면 MoF with EF6을 사용해 보자 : https://msdn.microsoft.com/en-us/library/dn314429 (v = vs.113) .aspx




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.