Pregunta vs 2012: Calzas compilar


Estoy tratando de hacer una calzada en VS 2012 ultimate como se describe en el sitio de MSDN:

[TestClass]
public class TestClass1
{ 
    [TestMethod]
    public void TestCurrentYear()
    {
        int fixedYear = 2000;

        using (ShimsContext.Create())
        {
          // Arrange:
          // Detour DateTime.Now to return a fixed date:
          System.Fakes.ShimDateTime.NowGet = 
              () =>
              { return new DateTime(fixedYear, 1, 1); };

          // Instantiate the component under test:
          var componentUnderTest = new MyComponent();

          // Act:
          int year = componentUnderTest.GetTheCurrentYear();

          // Assert: 
          // This will always be true if the component is working:
          Assert.AreEqual(fixedYear, year);
        }
    }
}

ver http://msdn.microsoft.com/en-us/library/hh549176.aspx

Pero cuando compilo mi proyecto de prueba obtengo una noción en Salida:

advertencia: algunas falsificaciones no se pudieron generar. Para obtener detalles completos, establezca el atributo Diagnóstico del elemento Fakes en este archivo en 'verdadero' y vuelva a generar el proyecto.

¿Cómo puedo resolver esta advertencia?


10
2017-12-28 09:28


origen


Respuestas:


Visual Studio 2012 Update 1 mejoró la generación de código en Fakes para simplificar la resolución de problemas de generación de código. Cada vez que no se puede generar un Stub o un Shim para un tipo particular, Fakes ahora puede generar un mensaje de advertencia; puede verlo en la ventana Lista de errores de Visual Studio.

Sin embargo, para evitar que la cantidad de advertencias se vuelva abrumadora para un ensamblaje grande, como System, Fakes genera una sola advertencia por defecto. Puede ver una lista completa de mensajes de advertencia configurando Diagnostic atributo de la Fakes Elemento XML en el archivo .Fakes a "cierto" o "1" y reconstruir el proyecto. (Consulte la primera línea de código a continuación para ver un ejemplo).

Para resolver la advertencia, cambie el archivo .Fakes para generar solo los Stubs y Shims que necesita en sus pruebas. Detalles aquí aquí una lista completa de opciones disponibles

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
  <Assembly Name="System" Version="4.0.0.0"/>
  <StubGeneration Disable="true" />
  <ShimGeneration>
    <Clear/>
    <Add FullName="System.DateTime!"/>
  </ShimGeneration>
</Fakes>

39
2017-12-28 18:16



Lo he resuelto ya solo.

Era .Net Framework 4.0 en Propiedad.

Cambiar a 4.5 resolver el problema.


2
2017-12-28 10:01



Intenta eliminar esos archivos .Faks. Los eliminé accidentalmente y compilé, y las advertencias desaparecieron. No estoy seguro de cuál es el impacto, pero todo parece funcionar bien. Creo que hace que la compilación recompile el archivo falso todo lo que hay es una compilación.


0
2017-09-18 20:09