visual unit tests test studio expectedexception ejemplo unit-testing visual-studio-2010 c#-4.0

unit testing - unit - ExpectedException en TestMethod Visual Studio 2010



unit testing visual studio 2015 (8)

Asegúrese de que su referencia a Microsoft.VisualStudio.QualityTools.UnitTestingFramework sea la versión 10.0.0.0.

Si es la versión 9.0.0.0, este problema ocurrirá en Visual Studio 2010.

Espero que esto ayude. Si la gente todavía tiene este problema.

Hoy actualicé mi solución con todos los proyectos subyacentes de VS2008 a VS2010. Todo salió bien, excepto mis pruebas unitarias.

En primer lugar, solo los proyectos web tenían como marco de trabajo .NET 4. Todos los demás proyectos aún tenían .NET 3.5. Los cambié todos a .NET 4.

Ahora, cuando depuro mis pruebas de unidad, se rompe en cada excepción. En 2008 simplemente no pasaría y me dijo que ocurrió una excepción. Incluso cuando tengo definido el atributo ExpectedException, se detiene la depuración en cada excepción.

Y ejemplo de una de mis pruebas:

[TestMethod] [ExpectedException(typeof(EntityDoesNotExistException))] public void ConstructorTest() { AddressType type = new AddressType(int.MaxValue); }

La EntityDoesNotExistException es una excepción personalizada y hereda la excepción.

Editar Miré la configuración de Excepciones (ctrl + alt + e) ​​en 2008 y 2010. En ambas versiones, la configuración es la misma. Sin embargo, en 2008, la depuración no se interrumpe cuando tengo el atributo ExpectedException. En 2010 se rompe.


Gerrie me señaló en la dirección correcta:

  • Presione Ctrl-Alt-E
  • Abra el nodo Common Language Runtime Excepions
  • Haga clic en Agregar
  • Escriba Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
  • Asegúrese de que las dos casillas de verificación estén desactivadas.

Esto eliminará la interrupción en los Asserts fallidos, pero la prueba se interrumpirá cuando haya establecido una ExpectedException.

Yo fui el que estableció el bono de 100 para esto, por lo que se agradecerían algunos votos positivos ;-)


He tenido el mismo problema, pero finalmente pude hacerlo funcionar. No estoy realmente seguro de cómo, pero aquí hay una lista de cosas que hice entre ellas y que no funcionaron cuando volvió a funcionar.

  • Convirtió el proyecto que se está probando a .NET 4
  • Desactivado CodeCoverage
  • Vuelve a activar CodeCoverage
  • Hizo un RebuildAll en el proyecto de prueba

No estoy seguro de qué bit lo arregló sin embargo. De todos modos, espero que esto ayude!


Presione Ctrl + Alt + E y verifique la interrupción en la configuración de excepciones para las excepciones CLR. Si esto se establece en verdadero, entonces ocurrirá el comportamiento que describió.



Terminé cambiando mis pruebas a este formulario para evitar la ruptura. No es ideal:

[TestMethod] public void Guid() { try { Guid g = new Guid("myguid''123''"); } catch( FormatException fe) { return; // expected exception - pass } Assert.Fail(); // exception not thrown - fail }


Un tipo de soporte de Microsoft me dijo que usara Ctrl-F5 (inicio sin depuración) cuando ejecutaba mis pruebas de unidad, y eso parece funcionar.

Otra cosa que debe intentar es ir a Herramientas | Opciones | Depuración y desmarque la opción "Habilitar solo mi código".