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?
Vemos el mismo problema. Creo que es un error. Ver: http://youtrack.jetbrains.com/issue/RSRP-380761
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.