2011-03-15 6 views
5

Revisé SO y la web durante bastante tiempo y me cuesta encontrar información sobre cómo configurar mi proyecto C# para pruebas unitarias.Uso de NUnit con Visual C# Express 2010 y .net 4

Comencé en el sitio principal de NUnit http://www.nunit.org, la descarga incluye una GUI para ejecutar las pruebas de su unidad, suena a menta. Solo cuando trato de señalar la GUI a mi .exe, me sale un error diciendo inmediatamente que NUnit no está diseñado para ejecutarse con este marco. Eso me hizo pensar que tal vez NUnit no funciona con .net 4. Aparentemente, mucha gente en línea parece afirmar que están ejecutando pruebas de unidad NUnit con .net 4 ... por supuesto que no parecen Continúa para decir cómo.

Al hacer clic en google encontré lo que parece ser uno de los miembros principales del desarrollo de NUnit es un tipo llamado Charlie Poole. Encontré que tenía una plataforma de lanzamiento aquí: https://launchpad.net/nunit-xtp. Los números de versión son más nuevos que en el sitio principal de NUnit. Sin embargo, cuando descargué el proyecto, es solo la base de código y la solución para el marco NUnit sin GUI. Hay un corredor de línea de comandos incluido, pero realmente necesito algo visual.

Tenemos jetbrains teamcity como BMS, así que ahora voy por el camino de intentar integrar NUnit en la línea de construcción de alguna manera. Si alguien puede arrojar algo de luz sobre cómo hicieron que NUnit trabajara con una edición expresa de C# que sería maravillosamente útil.

Editar: Tengo el teamcity BMS ejecutando las pruebas ahora, por lo que esa parte ya no es un problema. Sin embargo, esperar la compilación cada vez solo para encontrar un error de NullException o algo realmente no lo corta. Tengo que hacer funcionar al corredor de GUI. Encontré esta pregunta NUnit isn't running Visual Studio 2010 code pero incluso eso no me lo está arreglando. El error ahora se ha actualizado para leer la versión v4.0.30319, por lo que los cambios de configuración han tenido efecto. Mismo error antiguo sin embargo :(

Respuesta

3

Correcto Lo suscité. Hay una pregunta muy similar aquí: NUnit isn't running Visual Studio 2010 code

Solo lo que no menciona es que hay varios archivos de configuración para NUnit. Simplemente asumí que sería suficiente editar nunit.exe.config. De hecho, esto actualizó la configuración como lo vi en el mensaje de error. Sin embargo, el corredor de nunit gui debe hacer uso de uno de los otros archivos .config múltiples. Simplemente los revisé todos y agregué las dos configuraciones requeridas.

Asegúrese de ejecutar el .exe correcto. Uno se llama "nunit.exe" y parece ser el correcto para usar. El otro se llama "nunit-x86.exe" y si su aplicación es de 32 bits, entonces debe ejecutar este. Si "nunit.exe" se llamaba "nunit64.exe", creo que lo habría notado mucho antes.

También debe asegurarse de comprobar que el número de versión del CLR coincide con la configuración que está pegando en esos archivos de configuración. Use este enlace para calcular su número de versión actual de CLR. How do I find out what CLR i am using? Soy Microsoft Visual C# 2010 Express y mi número de versión de CLR es v4.0.30319

0

Las pruebas unitarias deben estar en un conjunto separado (de biblioteca de clases de tipos) .Si apuntas NUnit a ese ensamblaje, se ejecutará. Lo mismo aplica al corredor de línea de comandos (que se usa normalmente en los procesos de construcción automatizados).

+0

Sí, lo intenté. Tengo mis pruebas en un proyecto separado en la misma solución. Si intento abrir .dll con nunit.exe, obtengo el mismo error. "Es posible que esté intentando cargar un ensamblado creado con una versión posterior del CLR que la versión bajo la cual NUnit se está ejecutando actualmente (2.0.50727) o tratando de cargar un ensamblado de 64 bits en un proceso de 32 bits. " – DrLazer

+0

Tiene que utilizar el .NET 4.0 test runner, actualmente está utilizando .net 2.0. ¿Qué versión de NUnit está usando? seleccione el tiempo de ejecución 4.0 en Archivo -> Seleccionar Runtime? – Femaref

+0

Sí, archivo -> .net 4.0, Archivo-> abrir proyecto ..... mismo error. Creo que el número en el error es quizás un número de versión CLR. – DrLazer

0

el valor predeterminado NUnit distribución incluye un corredor de interfaz gráfica de usuario llamada 'nunit.exe'. Si usarlo, me puse mi destino de depuración en mi conjunto de prueba para cargar el corredor de interfaz gráfica de usuario con la configuración adecuada.

+0

Hola Ritch gracias por la respuesta. ¿Podrías explicar un poco sobre esa respuesta? No estoy seguro de que sé lo que quieres decir con "depurar objetivo". – DrLazer

Cuestiones relacionadas