252 votos

NUnit frente a los proyectos de prueba de Visual Studio 2008 para las pruebas unitarias

Voy a iniciar un nuevo proyecto en el trabajo y quiero introducirme en las pruebas unitarias. Vamos a utilizar Visual Studio 2008, C#, y el ASP.NET MVC cosas. Estoy mirando a usar ya sea NUnit o los proyectos de prueba incorporados que Visual Studio 2008 tiene, pero estoy abierto a la investigación de otras sugerencias. ¿Es un sistema mejor que el otro o quizás más fácil de usar/entender que el otro?

Quiero que este proyecto se convierta en una especie de "mejor práctica" para nuestros esfuerzos de desarrollo en el futuro.

98voto

Mendelt Puntos 21583

Daok nombró a todos los pro de los proyectos de prueba de Visual Studio 2008. Aquí están las ventajas de NUnit.

  • NUnit tiene un marco de trabajo mocking.
  • NUnit puede ser ejecutado fuera del IDE. Esto puede ser útil si quiere ejecutar pruebas en un servidor de compilación que no sea de Microsoft, como CruiseControl.NET .
  • NUnit tiene más versiones a punto de salir que visual studio. Usted no tiene que esperar años por una nueva versión. Y no tienes que instalar una nueva versión del IDE para obtener nuevas características.
  • Se están desarrollando extensiones para NUnit, como row-tests, etc.
  • Las pruebas de Visual Studio tardan mucho tiempo para iniciarse por alguna razón. Esto es mejor en Visual Studio 2008, pero sigue siendo demasiado lento para mi gusto. Rápidamente ejecutando una prueba para ver si no has roto algo puede llevar demasiado tiempo. NUnit con algo como Testdriven.Net para ejecutar pruebas desde el IDE es en realidad mucho más rápido. Especialmente cuando se ejecutan pruebas individuales. Según Kjetil Klaussen, esto se debe al testrunner de Visual Studio. La ejecución de las pruebas de MSTest en TestDriven.Net hace que el rendimiento de MSTest sea comparable al de NUnit.

64voto

Tuomas Hietanen Puntos 2615

El marco de pruebas unitarias en realidad no importa mucho, porque puedes convertir las clases de prueba con archivos de proyecto separados y compilación condicional (así, Visual Studio → NUnit):

 #if !NUNIT
  using Microsoft.VisualStudio.TestTools.UnitTesting;
 #else
  using NUnit.Framework;
  using TestClass = NUnit.Framework.TestFixtureAttribute;
  using TestMethod = NUnit.Framework.TestAttribute;
  using TestInitialize = NUnit.Framework.SetUpAttribute;
  using TestCleanup = NUnit.Framework.TearDownAttribute;
  using TestContext = System.String;
  using DeploymentItem = NUnit.Framework.DescriptionAttribute;
 #endif

El plugin TestDriven.Net es bonito y no muy caro... Con solo Visual Studio 2008 tienes que encontrar la prueba desde tu clase de prueba o lista de pruebas. Con TestDriven.Net puede ejecutar su prueba directamente desde la clase que está probando. Al fin y al cabo, las pruebas unitarias deben ser fáciles de mantener y estar cerca del desarrollador.

34voto

Simara Puntos 715

Ventajas/cambios del marco de pruebas unitarias integrado en Visual Studio 2008:

  1. La versión 2008 ya está disponible en ediciones profesionales (antes requería de Visual Studio, y esto es sólo un ejemplo. esto es sólo para las pruebas unitarias de los desarrolladores desarrollador) que dejó a muchos desarrolladores con la única opción de frameworks de pruebas abiertos/externos.
  2. API incorporada con el apoyo de una sola empresa.
  3. Utilice las mismas herramientas para ejecutar y crear pruebas (también puede ejecutarlas utilizando la línea de comandos MSTest ).
  4. Diseño simple (concedido sin un marco de trabajo falso, pero este es un gran punto de partida para muchos programadores).
  5. Apoyo a largo plazo concedido (todavía recuerdo lo que pasó con NDoc y no quiero commit con un framework de pruebas que podría no ser soportado en cinco años, pero sigo considerando a NUnit un gran framework).
  6. Si utiliza Team Foundation Server como backend, puede crear elementos de trabajo o errores con los datos de las pruebas fallidas de forma sencilla.

33voto

Patrick Desjardins Puntos 51478

Llevo dos años utilizando NUnit. Todo está bien, pero tengo que decir que el sistema de pruebas unitarias en Visual Studio es bastante agradable, ya que está dentro de la interfaz gráfica de usuario y puede hacer más fácilmente una prueba para la función privada sin tener que ensuciar.

Además, las pruebas unitarias de Visual Studio te permiten hacer coberturas y otras cosas que NUnit por sí solo no puede hacer.

14voto

Tarsier Puntos 1476

Una ligera molestia del marco de pruebas de Visual Studio es que creará muchos archivos de ejecución de pruebas que tienden a abarrotar el directorio de su proyecto, aunque esto no es un gran problema.

Además, si te falta un plugin como TestDriven.NET En el caso de NUnit (o MbUnit, xUnit, etc.), no se pueden depurar las pruebas unitarias dentro del entorno de Visual Studio, como sí se puede hacer con el marco de pruebas de Microsoft Visual Studio, que está incorporado.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X