Problèmes avec les plaques de cuisson ASP lors de l'utilisation d'Effort dans les tests unitaires avec EFProf (Entity Framework Profiler)

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

Question

Avoir des problèmes avec EFProf ( http://www.hibernatingrhinos.com/products/EFProf ) avec ASP Boilerplate ( http://www.aspnetboilerplate.com/ ).

Pour les tests unitaires, ASP Boilerplate utilise Effort ( https://github.com/tamasflamich/effort ) pour se moquer de la base de données en mémoire.

Si j'exécute les tests unitaires sans ajouter la référence à EFProf, les tests s'exécutent correctement (vert).

Si j'ajoute la ligne d'initialisation:

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

Dans mon ctor de base de test ou dans Initialize () de mon projet d'application, j'obtiens le message d'erreur suivant:

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

ComponentActivator: impossible d'instancier MyApp.EntityFramework.MyAppDataContext

L'exception interne contient les informations pertinentes:

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

Effort est-il tout simplement incompatible avec EFProf? Ou est-ce que je fais quelque chose d'une erreur aveuglante lors de mon initialisation?

Réponse acceptée

Répondant à ma propre question: Effort simule l'objet DbContect mais ne crée pas réellement de code SQL pour la mémoire, de sorte qu'il n'y a rien à intercepter par les profileurs. C'est également la raison pour laquelle CommandText est toujours nul lorsque vous utilisez Database.Log with Effort de EF6.

Je vais essayer d’utiliser Moq avec EF6 pour utiliser une implémentation de base de données en mémoire à des fins de test, comme alternative au projet de test d’Asp Boilerplate qui utilise Effort selon cet article: https://msdn.microsoft.com/en-us/library/dn314429 (v = vs.113) .aspx




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi