In VS2010 meine MSTest Test läuft gut.Visual Studio 2012 testet mit csla und Entity-Framework
Wenn in VS2012 ausgeführt wird, erhalte ich einen Fehler. Der Test legt den Csla.ApplicationContext.User mit einem benutzerdefinierten Business Principal fest. Wenn das EntityFramework aufgefordert wird, einen neuen ObjectContext bereitzustellen, erhalte ich eine SerializationException, die besagt, dass mein Custom Business Principal-Typ nicht gefunden werden kann.
Alle Tests, bei denen das EntityFramework verwendet wird, schlagen fehl, wenn Sie den Test Runner von VS2012 oder den Test Runner von Resharper7 durchlaufen. Ich habe NCrunchs Testläufer ausprobiert und alle bestanden.
Wie kann ich dieses Problem beheben?
Ich habe mein echtes Problem gefunden. VS2012 führt die Tests in einer separaten AppDomain aus, und unsere Datenzugriffsebene wird über Reflection geladen. Immer noch nicht sicher, warum EF Kenntnisse des Prinzipals erfordert, aber unsere Lösung bestand darin, unseren Principal vor dem Zugriff auf EF auf ein GenericPrincipal zurückzusetzen und dann das Original zurückzugeben. Ich ringe immer noch mit dem Gedanken, dass ein IoC-Container dieses Problem möglicherweise lindern könnte. –
Können Sie Ihre Ergebnisse als eine Antwort hinzufügen und sie als akzeptiert markieren, wenn es das Problem gelöst hat? –