2010-08-06 28 views

Respuesta

38

Como se ha indicado, las versiones Express no tienen incorporado, y no permiten complementos para esta funcionalidad, pero puede usar una herramienta externa, p. NUnit.

También puede configurar un comando para ejecutar desde la opción del menú 'Herramientas-> Herramientas externas' dentro de Visual Studio Express y ejecutar su corredor de prueba desde allí si lo desea.

Here es un enlace que muestra cómo hacerlo con VS C# 2008 Express, (desplácese hacia abajo hasta el final) pero creo que debería ser cierto también para 2010.

Here is a new working link.

+2

Además, el proyecto de apertura (una ya abierta en VS Express) en SharpDevelop 4.0 le dan una capacidad para ejecutar las pruebas de "visual" (los sus resultados ligados al código fuente) y, posiblemente, hacer algunas modificaciones rápidas codificar (VS Express lo reconocerá correctamente cuando Alt_Tab vuelva a él). Por lo tanto, el precio de tener una función de comprobación de unidades "visual" utilizable es una Alt-Tab adicional para SharpDevelop (y puede ser un clic en "Ejecutar pruebas"). – mlvljr

+0

Nota: esto no funcionará para VS Express para Windows Phone, a menos que la herramienta externa se haya compilado específicamente para ello ... – funkybro

+1

@Andy: enlace muerto –

10

No tiene nada incorporado, pero siempre puede usar nUnit con él.

MSTest viene incluido con la edición Pro y superior.

8

Las ediciones de Visual Studio Express tienen la limitación de que los complementos/complementos están explícitamente prohibidos. No vienen con una solución de prueba integrada, y no se puede agregar una.

Su mejor/única opción para utilizar un corredor de prueba independiente, como nUnit, mspec, etc ... y ejecutarlo externamente desde VSE.

9

En 2010 es posible usando una aplicación externa, sin embargo, la depuración de las pruebas unitarias se hace difícil. Si desea depurar usando NUnit es probablemente la mejor ruta (pero no la única opción, vea ExpressUnit). Vea this respuesta en otro hilo SO. Se une a un blog que menciona la ejecución del proyecto de prueba como una aplicación de consola y llamando a las DLL de la biblioteca nunit directamente para poner en marcha las pruebas:

using System; 

namespace RunTests 
{ 
    static class Program 
    { 
     [STAThread] 
     static void Main() 
     { 
      var args = new string[] { Assembly.GetExecutingAssembly().Location, "/run" }; 
      NUnit.Gui.AppEntry.Main(args); 
     } 
    } 
} 
+0

404 en la publicación del blog. Esta es una gran manera de depurar las pruebas unitarias en la interfaz de usuario. Gracias por compartir. Terminé creando un proyecto separado, agregando una referencia a los ensamblajes que deseo probar, y luego usando 'Assembly.GetAssembly (typeof (MyAssembly.MyType)). Location' para obtener el ensamblado para el corredor de prueba. – cod3monk3y

0

echar un vistazo a NHarness en CodePlex, una biblioteca muy simple que le permite ejecuta los dispositivos de prueba NUnit en un proyecto de prueba. Esto le permite la capacidad para depurar a través de sus pruebas de unidad, si es necesario

Un ejemplo (en la página de CodePlex) de un corredor de prueba es la siguiente

public class RunTests 
    { 
     public static void Main(string[] args) 
     { 
      TestResults results = Tester.RunTestsInClass<Tests>(); 

      Console.WriteLine("Tests Run: {0}", results.NumberOfResults); 
      Console.WriteLine("Results {0}:PASSED {1}:FAILED", results.NumberOfPasses, results.NumberOfFails); 
      Console.WriteLine("Details:"); 

      foreach (TestResult result in results) 
      { 
       Console.WriteLine("Test {0}: {1} {2}", 
              result.MethodName, 
              result.Result, 
              result.Result == TestResult.Outcome.Fail ? "\r\n" + result.Message : ""); 
      } 

      Console.ReadLine(); 
     } 
    } 

El beneficio de esta biblioteca es que la clase Resultado de la Pruebas puede se puede utilizar para recuperar información sobre las pruebas ejecutadas, por lo que la biblioteca también se puede usar en aplicaciones de prueba unitarias personalizadas

0

Siempre puede configurar una clase adicional con un método Main() en el proyecto y seleccionarla como un objeto de inicio en su proyecto, y depurarlo desde allí. Puede que no sea adecuado en situaciones donde se realizan tareas más complejas, ya que no puede aprovechar las características más específicas de las pruebas, pero podría ser útil en algunos proyectos más simples. Si su proyecto es una biblioteca de clases, considere convertirlo a una aplicación de consola y luego alternarlo cuando termine la prueba.

0

(Nota: Yo sé que este post es antiguo, pero esto podría ayudar a alguien)

Como Andy publicado anteriormente, puede utilizar NUnit.
Pero la configuración en el enlace publicado por Andy ya no funciona en VS C# 2010.
Éstos son los ajustes que uso en la ventana de herramientas externas:

Comando: C: \ Archivos de programa (x86) \ NUnit 2.6.2 \ bin \ nunit-x86.exe
(También hay una nunit.exe en el directorio bin )

Argumentos: $ (projectdir) $ (ProjectFileName)
directorio inicial: $ (projectDir) bin/depuración/$ (TargetName) $ (TargetExt)

7

Esto ahora se incluye en Visual Studio 2013 Express: http://msdn.microsoft.com/en-us/library/dd264975.aspx

Si prueba Explorador de no está visible, elija prueba en el menú de Visual Studio, elija de Windows, y luego elija Test Explorer.

enter image description here

+0

Es muy triste ver a M $ subirse a este carro de "pruebas" solo porque todos los demás lo están haciendo. Qué moda. (En serio, esto es 2013 y solo estamos obteniendo pruebas unitarias integradas en VS ??) – cod3monk3y

+2

@ cod3monk3y, qué comentario tan extraño. Es una pena que haya tardado tanto, pero seguro que está mejorando. ¡Difícilmente describir las pruebas como una moda! –

+1

¡Absolutamente es una mejora! He estado desarrollando en C# durante más de una década y soy un gran defensor de pruebas unitarias, cobertura de código, proceso, etc. Por lo tanto, el comentario fue a regañadientes sarcástico. Las pruebas deben ser parte integral del proceso de desarrollo y me complace ver que finalmente se convierta en una función básica para compartir entre todos los desarrolladores. Recientemente he estado haciendo algunos programas de Python y Angular/JS/Flask/Python y me encanta cómo las pruebas unitarias son parte de la cultura ('python -m unittest discover' para python y jazmín/karma para JS). Me alegra ver esto como parte del kit de herramientas de los nuevos desarrolladores. – cod3monk3y

Cuestiones relacionadas