2008-08-05 17 views
57

Volviendo a un poco más .NET luego de algunos años de no usarlo a tiempo completo, y preguntándome cuáles son los buenos paquetes de pruebas unitarias que existen actualmente..NET Unit Testing packages?

Estoy familiarizado con NUnit (hace algunos años), y he jugado brevemente con IronRuby, con el objetivo de conseguir algo como rspec, pero no sé mucho más que eso.

que se dan cuenta de que podía google para esto y lo llaman un día, pero creo que estoy probable que obtenga una respuesta mejor y más informada de hacer una pregunta aquí :-)

Sugerencias?

+0

wow, una pregunta increíblemente útil con muchos votos positivos que no ha sido "cerrada como no constructiva" ... la policía tan divertida debe haberse quedado dormida en su turno – Jonah

Respuesta

51

Hay tantos que es una locura. Loco bien, supongo.

  • Para los tipos conservadores (me), NUnit sigue estando disponible y aún más que capaz.
  • Para los tipos de Microsoft, MSTest es adecuado, pero lento y torpe en comparación con Nunit. También carece de cobertura de código sin pagar mucho dinero por las costosas versiones de Visual Studio.
  • También hay MbUnit. Es como NUnit, pero tiene funciones ingeniosas como RowTest (ejecuta la misma prueba con diferentes parámetros) y Rollback (devuelve la base de datos como la encontraste después de una prueba)
  • Y finalmente, xUnit.net es la opción de moda con cierta actitud.
  • Ah, y TestDriven.NET le dará integración IDE para Nunit y MBunit.

Estoy seguro de que están bien. Sin embargo, me alejaría de MSTest, a menos que simplemente disfrutes de la comodidad de tener todo en un IDE fuera de la caja.

Scott Hanselman tiene un podcast sobre este mismo tema.

+5

+1, tenga en cuenta que NUnit 2.5 tiene las buenas características de RowTest , además de pruebas combinatorias de argumentos, etc. – user7116

+0

La diferencia entre MSTest y NUnit no es tan grande si me preguntan. Principalmente se reduce a la sintaxis preferida y si usas TesteDriven.Net, que también es compatible con MSTest, el rendimiento es prácticamente el mismo. –

+0

Sí, NUnit 2.5 tiene características RowTest a través del atributo [TestCase]. –

3

Me gusta TestDriven.NET (aunque uso ReSharper) y estoy muy contento con XUnit.net. Utiliza datos en lugar de pruebas que a muchas personas no les gustan, pero me gusta la diferencia en terminología. Es útil pensar en una colección de Datos demostrables automáticamente sobre su software y ver cuáles viola cuando hace un cambio.

Tenga en cuenta que Visual Studio 2008 Professional (and above) now comes with integrated Unit Testing (solía estar disponible solo con Team System Editions) y puede ser adecuado para sus necesidades.

6

xUnit.net parece que proporciona un enfoque ligeramente diferente a N/MB/MS/Unit, lo cual es interesante.

En mi búsqueda de una solución rspec similar (porque me encanta el rspec), también me encontré con NSpec, que parece un poco prolijo, pero combinado con el NSpec Extensions complemento a utilizar C# 3 métodos de extensión, se ve bastante bonito.

+0

Es posible que desee ver este NSpec (http://nspec.org). Es casi idéntico a RSpec. – Amir

8

Utilizamos NUnit y MBUnit aquí. Usamos TestDriven.NET para ejecutar las pruebas unitarias desde Visual Studio. Usamos el excelente y altamente recomendado RhinoMocks como marco simulado.

2

Solía ​​usar NUnit, pero cambié a MbUnit ya que tiene más funciones. Me encanta RowTest. Le permite parametrizar sus pruebas. Sin embargo, NUnit tiene un poco mejor soporte de herramienta de hojarasca. Estoy usando ReSharper para ejecutar las pruebas de MbUnit. He tenido problemas con TestDriven.NET al ejecutar mis métodos SetUp para MbUnit.

2

Esto es realmente una opinión personal de mi parte (supongo que es redundante ya que es un foro). NUnit, MSTest, ect todos hacen bastante mutch la misma cosa. Sin embargo, creo que NMock es indispensable.

NMock o cualquier paquete de burla no es una prueba unitaria, pero hace que sea mucho más fácil hacer pruebas unitarias que también.

8

Se adhieren a NUnit. No vayas a ninguna parte cerca de MSTest.

NUnit + ReSharper es un placer absoluto para trabajar con él.

+1

¿Por qué debería alejarse de MSTest? Apreciaría si realmente te molestaras en compartir POR QUÉ quieres alejarte de eso. Y R # también funciona con MSTest (con el plugin de Gallio). –

+1

Hola, Kjetil. Es principalmente por tres razones. 1. Los metadatos que crean las pruebas MS. ¿Por qué? Refleja como NUnit. 2. El corredor de prueba es horrible. 3. NUnit hace todo mejor, por qué cambiar. Lo hice por un tiempo, pero luego volví a cambiar. –

+0

También he encontrado varios errores con el "corredor" de prueba MS.Básicamente, VS lo deja funcionando en segundo plano y bajo ciertas circunstancias las pruebas que ejecutó hace 10 minutos pueden interferir con el que está a punto de ejecutar en este momento :-( –

6

Solía ​​utilizar NUnit, pero ahora tiendo a utilizar MbUnit, para dos características clave: 1. La función RowTest le permite ejecutar fácilmente la misma prueba en diferentes conjuntos de parámetros, lo cual es importante si realmente desea cobertura. 2. La función de reversión le permite ejecutar pruebas en su base de datos mientras realiza cambios tras cada prueba, manteniendo su base de datos exactamente en el mismo estado cada vez. Y es tan fácil como agregar el atributo [Retroceder].

Otro aspecto agradable de MbUnit es que su sintaxis es casi idéntica a NUnit, por lo que si ya tiene todo un banco de pruebas bajo NUnit, puede cambiar las referencias sin necesidad de cambiar ninguna (¿mucho? código)

5

utilizo el siguiente:

TestDriven.NET - Unidad de Pruebas agregar para Visual Studio

Typemock Isolator - que imita marco para .Net Unit Testing

NUnit - Un marco de pruebas de unidades de fuente abierta que está en C#.

4

Esta es una vieja pregunta, pero puede que le resulte interesante que Gallio v3.1 ahora admita RSpec a través de IronRuby.