2010-01-01 22 views
7

Estoy tratando de entrar en pruebas unitarias con C#. Varias personas me dijeron que vaya con NUnit ya que es mejor que MSTest (aparentemente, no tengo ni idea) y también tiene un muy buen soporte en ReSharper que estoy usando.¿Cómo puedo crear pruebas NUnit con ReSharper?

Ahora nunca he escrito una prueba unitaria en mi vida (tengan paciencia, soy un estudiante universitario). ReSharper tiene esta bonita opción de menú contextual CreateUnitTests que he visto a otros (casualmente mirando por encima del hombro) usar con gran éxito. Hace clic con el botón derecho en un método, selecciona CreateUnitTests y allí está, se crea un esqueleto de prueba. Simplemente llena los bits importantes.

Ahora cuando intento lo mismo, ReSharper quiere que cree un nuevo Proyecto de prueba ... y cuando lo dejo, crea (lo que asumo) un proyecto MSTest con obviamente una plantilla de prueba MSTest. Pero ya tengo un proyecto de libarary de clase que hace referencia a "nunit.framework" y tiene algunas pruebas de NUnit que ReSharper está más que dispuesto a ejecutar. Aún así, solo crea plantillas de prueba MSTest, y solo en proyectos especiales de "Proyecto de prueba".

¿Qué estoy haciendo mal? ¿Estoy haciendo algo mal o no puedo crear plantillas de prueba NUnit con ReSharper? He buscado en la red y he leído la documentación de ReSharper y NUnit y todavía no puedo entender si esto es posible o qué.

Estaría agradecido si alguien pudiera proporcionarme una especie de guía para usar ReSharper + NUnit.

EDIT: Estoy usando ReSharper 4.5 y 2.5.3 NUnit

Edit2: Al parecer que soy un idiota. CreateUnitTests no es parte de ReSharper, sino que forma parte de Visual Studio y, por lo tanto, solo funciona con MSTest.

Respuesta

12

En su proyecto de prueba creado por Resharper, elimine la referencia a la DLL de prueba de la unidad de Microsoft (no recuerdo el nombre a mano, pero es un nombre bastante largo).

A continuación, agregue una nueva referencia - nunit.framework.dll, debe encontrarla en la primera pestaña del cuadro de diálogo Agregar referencia.

Agregue using NUnit.Framework al archivo de la clase de prueba de la unidad.

este caso es necesario cambiar los atributos:

[TestClass] to [TestFixture] 
[TestMethod] to [Test] 

Así que si usted termina con un proyecto MSTest, utilice los pasos anteriores para obtener NUnit lugar.

NOTA: Resharper 4.5 en adelante tiene soporte nativo para ejecutar pruebas MSTest y NUNit. Entonces podrías intentar eso.

+1

embargo, la adición de una nueva prueba con CreateUnitTests añade de nuevo la referencia a la prueba DLL de Microsoft y otra vez utiliza TestClass en lugar de TestFixture etc ... tendría que eliminar estos ¿mucho tiempo? ¿Esto significa que ReSharper solo puede crear plantillas de prueba MSTest? – Lucas

+3

No estoy tan familiarizado con las opciones de Resharper. ¿Estás seguro de que Resharper te ofrece la opción de crear pruebas unitarias? Utilizo Visual Studio 2008 Team System y cuando hago clic derecho en un método obtengo la opción 'Crear pruebas unitarias'. Como esto es parte de VS, siempre usará MSTest. No estoy seguro de si Resharper está haciendo esto. Una de ellas es deshabilitar Resharper (Herramientas-> Complementos) y crear una prueba unitaria desde cero, si está usando MSTest entonces no es Resharper. –

+0

Ahhh, ya veo. Aparentemente soy un idiota. – Lucas

5

No necesita ejecutar ningún asistente para usar NUnit. Solo puede crear una biblioteca de clases, agregar una referencia a NUnit y marcar sus pruebas con el atributo correspondiente. Los Wizards son solo para MSTest e incluso entonces, no son obligatorios.

Una vez que tenga las pruebas unitarias, el corredor de prueba ReSharper las detectará y en el margen izquierdo obtendrá algunos iconos que le permitirán ejecutar/depurar pruebas. Ver la primera imagen aquí para ver un ejemplo:

NUnit and ReSharper

Cuestiones relacionadas