unitarias pruebas mvc c# nunit resharper integration-testing appdomain

c# - mvc - La ejecución de NUnit a través de las pruebas Resharper 8 falla al cruzar entre proyectos debido a AppDomain



pruebas unitarias c# (3)

Esto ahora se ha solucionado en Resharper 8.0.2: http://youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929

No olvide marcar la nueva opción ReSharper | Opciones | Herramientas | Pruebas unitarias | "Usar dominio de aplicación por separado para cada ensamblaje con prueba" para que funcione.

es decir, ahora hay una nueva opción en la configuración de Prueba de unidad.

Recientemente actualicé a Resharper 8, y cuando traté de ejecutar un conjunto de proyectos. Estas pruebas contienen dos conjuntos de pruebas de integración que usan IISExpress para ejecutar un sitio web, realizar solicitudes web y verificar las respuestas.

Ejecutarlos de forma aislada es exitoso, y ejecutar todas las pruebas anteriormente tendría éxito. Sin embargo, después de la actualización, el segundo conjunto de pruebas fallaría.

La investigación ha revelado que AppDomain.CurrentDomain.BaseDirectory se queda como la primera prueba para ejecutar en lugar de cambiar. Dado que las pruebas de integración están compuestas por dos proyectos, esto está causando que el segundo proyecto falle ya que no puede encontrar ninguno de los archivos de configuración necesarios.

No puedo encontrar ninguna opción para desactivar este comportamiento diferente en Resharper 8, que parece ser el comportamiento de /domain:Single nunit flag. A falta de una degradación a Resharper 7, ¿alguien sabe una solución para esto? ¿Y es un comportamiento previsto de Resharper 8 o un error?



La solución:

Has probado en Visual Studio yendo a ReSharper -> Opciones -> Herramientas -> Pruebas unitarias

Cambie la configuración "Ejecutar hasta 1 ensambles en paralelo" a un número más alto. Intenté uno para cada proyecto de prueba. Max es la cantidad de núcleos, creo.

Es contra-intuitivo, lo sé, pero funcionó para mí y estoy usando AppDomain.CurrentDomain.BaseDirectory en las pruebas fallidas

La causa Un error de optimización de almacenamiento en caché en ReSharper 8. Directorio de trabajo no está configurado correctamente. Tal vez correr en paralelo crea un proceso separado para cada prueba, para que no se tropiecen con las configuraciones de los demás.

Los Fix JetBrains afirman que esto se solucionará en la versión 8.0.1

Actualización: hay una nueva opción de prueba de unidad agregada en Resharper 8.1 para acomodar este escenario. Encuéntrelo en ReSharper -> Opciones -> Herramientas -> Pruebas unitarias -> " Use AppDomain separado para cada ensamblaje con pruebas.