2010-01-05 5 views
6

Tengo la siguiente pregunta: ¿Cuáles son las ventajas y desventajas de ejecutar nunit-console con la opción/noshadow? Tus comentarios serán muy útiles GraciasOpción Noshadow para nunit-console

Respuesta

4

El problema principal que he encontrado con/noshadow es que impide que tu proyecto se construya ya que NUnit ahora está obligado a usar y bloquear tu DLL. Si deja esta opción deshabilitada, entonces NUnit crea una copia de su DLL.

Si está tratando de practicar TDD y está constantemente construyendo el proyecto en el ciclo Refactor Rojo, Verde, entonces no puede usar/sombrear fácilmente. Aparecerá un mensaje de error como:

El proceso no puede acceder al archivo 'bin \ Debug \ calculator.dll' porque está siendo utilizado por otro proceso.

Probablemente haya formas de evitar esto, pero ese es el principal problema que he encontrado.

En cuanto a usa usa esto: creo que la razón principal es para acelerar el rendimiento, pero como la mayoría de las pruebas de unidades reales se ejecutan muy rápido, no estoy seguro de cuándo realmente necesitarías esto. Estoy seguro de que otras personas encontrarán algunos buenos ejemplos.

4

Si confía en algo que utiliza una ubicación de archivo en sus pruebas, por ejemplo, para un proceso de carga de ensamblaje curioso, o simplemente algo tan simple como Assembly.GetExecutingAssembly(). Ubicación, entonces es probable que golpee problemas porque NUnit ha copiado su archivo a otra ubicación que no sea la de compilación.

Yo diría que normalmente estos problemas se pueden evitar, especialmente si evita tocar el sistema de archivos en las pruebas de su unidad.

+0

Es exactamente por eso que lo estoy usando. Nuestro UAT carga archivos de Excel y usamos Assembly.GetExecutingAssembly(). Ubicación para encontrarlos. Sin él, tendríamos que almacenar su ubicación en alguna configuración. Y debe ser una ruta absoluta, por lo que sería diferente en cada máquina. –

0

Una advertencia rápida, el complemento gradle para Nunit ha cambiado la forma de especificar las opciones de sombreado. Me tomó un tiempo encontrar esto para postear aquí en caso de que pueda ayudar a alguien más.

noShadow se reemplaza por shadowCopy y el valor predeterminado es falso, es decir, el nombre ha cambiado y el sentido/dirección de la misma es el opuesto. Esto se hizo aparentemente para unir más de cerca lo que hace Nunit 3. Puede leer detalles sobre esto en el plugin changlog en https://github.com/Ullink/gradle-nunit-plugin/blob/master/CHANGELOG.md

Cuestiones relacionadas