2009-04-01 26 views
16

¿Cuál prefieres?NUnit vs Team System Unit Test

¿Cuáles son las ventajas y desventajas de cada una de las Pruebas unitarias?

EDIT: Admitiré que Team System ofrece mucho más que pruebas unitarias, como rendimiento y pruebas de carga de aplicaciones y bases de datos. Esta pregunta se centraba en las pruebas de unidad de escritura y cuál prefieres.

+0

Véase también http://stackoverflow.com/questions/1554018/unit-test-nunit-or-visual-studio –

Respuesta

9

Nunit:

Ventajas:

  • gratuito
  • Muy similar al sistema de equipo en atributs y métodos para la afirmación, algunos nombres son aún las mismas

Desventajas:

  • Las pruebas se deben ejecutar a través de la consola o aplicación externa (esto puede ser visto como una ventaja, pero no desde mi punto de vista) .

pruebas del sistema Equipo

Ventajas:

  • Una parte de VS, puede ejecutar pruebas en una ventana de prueba.
  • Si ejecuta un servidor de sistema del equipo puede ejecutar pruebas más fácilmente como parte de la construcción automatizado

Desventajas:

  • Caro
  • Todavía no es tan estable como NUnit

A comparison between team system and Nunit

Utilizamos el sistema de equipo 2008, ya que somos socios certificados de oro para Microsoft, pero anteriormente utilizamos Nunit debido a problemas relacionados con errores en VS 2005. Prefiero la solución de VS en.

Ambos son buenas soluciones para su trabajo, también mirar hacia fuera para otras soluciones gratuitas como:

Good alternatives to Team System

+3

Ejecutar las pruebas de NUnit con Resharper o TestDriven.net también está completamente integrado en VS, con pruebas ejecutándose en una ventana de prueba, etc. –

+0

TestDriven integración es demasiado débil, aunque preferiría algo como testmatrix. También Resharper es genial también. –

+0

Sí, miré en TestDriven. Pero, es $$$. – eduncan911

6

Una razón muy específica, es que NUnit no te atará a la edición profesional del estudio visual.

Actualización: Aquí hay un enlace sobre el soporte de la unidad de pruebas en Professional Edition en vs 2008: http://msdn.microsoft.com/en-us/library/bb385902.aspx

+0

Se refiere a la edición Team System de Visual Studio. – eduncan911

+0

@Eric no, quise decir exactamente eso, revise el enlace en mi actualización a la respuesta – eglasius

2

Al utilizar pruebas de EM, puede utilizar CHESS:

ajedrez es una herramienta para probar sistemáticamente código multiproceso. Dada una prueba simultánea, CHESS conduce sistemáticamente la prueba a lo largo de todas las intercalaciones posibles de subprocesos.

Además, encontré una buena comparación here que afirma que las pruebas de MS son un poco más lentas que NUnit, pero no lo compruebo yo mismo.

+0

Estoy viendo CHESS ahora para algunas pruebas de sincronización, pero todas nuestras pruebas unitarias aquí en Stack Overflow están en NUnit; Supongo que las pruebas de enhebrado deben ser con MSTest. –

4

Otra ventaja de NUnit es que no requiere que agregue nada a sus clases de prueba. MSTest requiere la presencia de una propiedad TestContext. Comenzamos con MSTest pero convertimos a NUnit. También encuentro que NUnit es significativamente más rápido y prefiero la interfaz de usuario del corredor de prueba de ReSharper.

+0

@Jamie puede dejar el TestContext a cabo si quiere decir esto iría: [TestClass] clase pública UnitTest3 { [TestMethod] TestMethod1 public void() { Assert.AreEqual (2, 2); } } – eglasius

1

¿No le permite Visual Studio 2008 utilizar otros marcos de prueba cuando crea el proyecto de prueba? Recuerdo vagamente esto al ver los viejos videos de MVC Framework cuando Hanselman estaba haciendo la vista previa de 2 o 3 videos.

Esto le permitiría usar cualquier marco de prueba que le guste y seguir pudiendo usarlo en su VS2008 IDE.

4

Actualmente NUnit tiene categorías de prueba que le permiten ejecutar pruebas unitarias por separado de pruebas de integración más lentas.

MS Tests no tiene dicho mecanismo incorporado.

+0

@total puede ejecutar todas las pruebas en el contexto actual, lo que significa: una sola prueba, una clase o un espacio de nombres completo. Con el espacio de nombres adecuado, puedes hacerlo. – eglasius

+0

Lo siento, quise decir desde una línea de comandos TFS Build o MSTest. Para hacer algo equivalente, debe especificar pruebas individuales o crear manualmente una lista de pruebas en un archivo vsmdi. – jturcotte

1

¿Qué pasa con las pruebas de métodos privados. Team System crea accesos automáticos en forma de sombra mediante reflejos. ¿NUnit es el mismo?

0

Siempre hay herramientas como ReSharper y TestDriven.NET. Le permitirán ejecutar pruebas desde Visual Studio