ShimNotSupportedException en MS VisualStudio 2012

Solo estoy tratando de familiarizarme con el nuevo Fakes Isolation Framework en Visual Studio 2012 RC pero, por lo tanto, estoy enfrentando problemas conShimNotSupportedExceptions.
En los primeros intentos, cada método de compensación individual al que intenté conectar un delegado, había lanzado unShimNotSupportedException al intentar ejecutar / depurar la prueba.

[TestMethod]
public void GetFoo_ValidBar_ReturnsBaz()
{
    using(ShimsContext.Create())
    {
        ShimDateTime.NowGet = () => new DateTime(2012,08,11,10,20,59);

        const string expected = "20120811_102059";
        string actual = GetFoo();

        Assert.AreEqual(expected,actual);
    }
} 

Esta es la traza de pila correspondiente:

El método de prueba GetFoo_ValidBar_ReturnsBaz ha generado una excepción: Microsoft.QualityTools.Testing.Fakes.Shims.Shim. Test.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.OnAttachedUnsupportedMethod (método de MethodBase) en Microsoft.QualityTools.Testing.Fakes. método, Delegate detourDelegate) en Microsoft.QualityTools.Testing.Fakes.UnitTestiotrivetion.UnitTestIsolationRuntime.AttachDetour (Objeto opcionalReceptor, Estado de los cambios en el recargo), Delegado detourDelegado) en Microsoft.QualityTools.Testing.Fakes. Método MethodBase) en Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.SetShim (Delegate optionalStub, Type receiverType, Object OptionalReceiver, String name, ShimBinding flags, Type returnType, Type [] ParameterTypes) en Microsoft.QualityTools.Testing.Fakes.Shims.Shims.Shim.Rim. .SetShimPublicStatic (Delegate optionalStub, Type receiverType, String name, Type returnType, Type [] parametersTypes) en System.Fakes.ShimDateTime.set_NowGet (Func'1 value) en GetFoo_ValidBar_ReturnsBaz () en BazTests.cs: línea 48.

Después de haber leído los dos subprocesos que encontré en MSDN que trataban este problema, seguí sus instrucciones (desactivando CodeCoverage, eliminando el archivo .testsettings) que no me funcionó.
Sin embargo, he encontrado una solución para este problema:
En primer lugar, ejecutando todas las pruebas desde el Explorador de pruebas (en lugar de usar el botón "Prueba MSTest (clic para ejecutar)" directamente fuera del área de codificación) todo funcionó correctamente y no se lanzaron excepciones. Más tarde, incluso pude depurar la prueba y la asignación al método shim funcionó como se esperaba.
Esto funcionó para todas las calzas siguientes que utilicé también.
Pero ahora vuelvo a tener el mismo problema al intentar implementar falsificaciones de MS Enterprise Library para el acceso a la base de datos.

Así es como se ve la prueba:

[TestMethod]
public void GetFooFromEF_NonEmptyDataReader_ObjectsCorrectlyInstantiated()
{
    using(ShimsContext.Create()){
        var dataReader = new StubIDataReader()
            {
                ItemGetString = s => 1,
                DepthGet = () => 2
            };

        ShimFoo.GetBar = guid => dataReader;

        var bar = new StubIBar()
        {
            ConvertIBarToBaz = record => null
        };

        ShimQux.AllInstances.GetBar = (a, b) => bar;

        var dbFactory = new StubDbProviderFactory();
        var db = new StubDatabase("test", dbFactory);
        ShimDatabaseFactory.CreateDatabaseString = s => db;

        List<BarInformation> actual = accessor.InvokeStatic("GetBar",
                                                                new Object[] { }) as List<BarInformation>;
        Assert.IsTrue(true);
    }
}

Las primeras dos asignaciones de shim (ShimFoo y ShimQux) funcionan como se espera. Pero ShimDatabaseFactory.CreateDatabaseString (que se supone que hace que DatabaseFactory.CreateDatabase (string) devuelva una base de datos de código auxiliar al intentar crear una nueva instancia de base de datos) lanza una excepción ShimNotSupportedException nuevamente. ¡Y no puedo entender por qué!
¿Tienes alguna idea de lo que salió mal aquí?

Apreciaría cualquier entrada sobre esto.

Gracias,
Benjamín

Respuestas a la pregunta(3)

Su respuesta a la pregunta