Ejecutar pruebas unitarias con el Explorador de pruebas

Use el Explorador de pruebas para ejecutar pruebas unitarias en proyectos de Visual Studio o de terceros. También puede usar el Explorador de pruebas para agrupar las pruebas en categorías, filtrar la lista de pruebas y crear, guardar y ejecutar listas de reproducción de pruebas. También puede usar el Explorador de pruebas para depurar pruebas unitarias y, en Visual Studio Enterprise, analizar la cobertura de código.

El Explorador de pruebas puede ejecutar pruebas de varios proyectos de prueba en una solución y desde las clases de prueba que forman parte de los proyectos de código de producción. En los proyectos de prueba pueden usarse marcos de pruebas unitarias diferentes. Cuando el código sometido a prueba está escrito para .NET, el proyecto de prueba puede escribirse en cualquier lenguaje que también tenga .NET como destino, independientemente del lenguaje del código de destino. Los proyectos de código de C/C ++ nativos deben probarse con el marco de pruebas unitarias de C++.

Compilación del proyecto de prueba

Si aún no tiene un proyecto de prueba configurado en la solución de Visual Studio, deberá crearlo y compilarlo en primer lugar.

Visual Studio incluye los marcos de pruebas unitarias de Microsoft para código administrado y nativo. No obstante, el Explorador de pruebas también puede ejecutar cualquier marco de pruebas unitarias que haya implementado un adaptador de este explorador. Para más información sobre cómo instalar los marcos de pruebas unitarias de terceros, vea Instalar marcos de prueba unitaria de terceros.

Ejecutar pruebas en Explorador de pruebas

Al compilar el proyecto de prueba, las pruebas aparecen en el Explorador de pruebas. Si el Explorador de pruebas no está visible, elija Prueba en el menú de Visual Studio y, después, Explorador de pruebas (o presione Ctrl + E, T).

Test Explorer

Test Explorer

Cuando ejecute, escriba y vuelva a ejecutar las pruebas, el Explorador de pruebas mostrará los resultados en una agrupación predeterminada de Proyecto, Espacio de nombres y Clase. Puede cambiar la manera en que el Explorador de pruebas agrupa las pruebas.

Desde la barra de herramientas del Explorador de pruebas puede realizar gran parte del trabajo de búsqueda, organización y ejecución de las pruebas.

Run tests from the Test Explorer toolbar

Run tests from the Test Explorer toolbar

Ejecutar pruebas

Puede ejecutar todas las pruebas de la solución, todas las pruebas de un grupo o un conjunto de pruebas seleccionado. Realice una de las siguientes acciones:

  • Para ejecutar todas las pruebas de una solución, elija el icono Ejecutar todas (o presione Ctrl + R, V).

  • Para ejecutar todas las pruebas de un grupo predeterminado, elija el icono Ejecutar y el grupo en el menú.

  • Seleccione las pruebas individuales que quiera ejecutar, abra el menú contextual de la prueba elegida y seleccione Ejecutar pruebas seleccionadas (o presione Ctrl + R, T).

  • Si las pruebas individuales no tienen ninguna dependencia que impida que se ejecuten en cualquier orden, active la ejecución de pruebas paralelas en el menú de configuración de la barra de herramientas. Esto puede reducir considerablemente el tiempo necesario para ejecutar todas las pruebas.

Ejecutar pruebas después de cada compilación

Para ejecutar las pruebas unitarias después de cada compilación local, abra el icono de configuración en la barra de herramientas del Explorador de pruebas y seleccione Ejecutar pruebas después de compilar.

Ver los resultados de las pruebas

Al ejecutar, escribir y volver a ejecutar las pruebas, el Explorador de pruebas muestra los resultados en los grupos de Pruebas no superadas, Pruebas superadas, Pruebas omitidas y Pruebas no ejecutadas. El panel de detalles de la parte inferior o lateral del Explorador de pruebas muestra un resumen de la serie de pruebas.

Ver detalles de la prueba

Para ver los detalles de una prueba individual, selecciónela.

Test execution details

Test execution details

El panel de detalles de la prueba muestra la información siguiente:

  • El nombre de archivo de origen y el número de línea del método de prueba.

  • Estado de la prueba.

  • El tiempo que ha tardado en ejecutarse el método de prueba.

Si la prueba no se supera, en el panel de detalles se mostrará también:

  • El mensaje que ha devuelto el marco de pruebas unitarias para la prueba.

  • El seguimiento de la pila en el momento en que la prueba generó el error.

Ver el código fuente de un método de prueba

Para mostrar el código fuente de un método de prueba en el editor de Visual Studio, seleccione la prueba y haga clic en Abrir prueba en el menú contextual (o presione F12).

Agrupar y filtrar la lista de pruebas

El Explorador de pruebas permite agrupar las pruebas en las categorías predefinidas. En la mayoría de los marcos de pruebas unitarias que se ejecutan en el Explorador de pruebas podrá definir las categorías y los pares categoría-valor para agrupar las pruebas que desee. Para filtrar la lista de pruebas, también puede establecer coincidencias entre las cadenas y las propiedades de las pruebas.

Agrupar pruebas en la lista de pruebas

El Explorador de pruebas le permite agrupar las pruebas en una jerarquía. La agrupación de jerarquías predeterminada es Proyecto, Espacio de nombres y, luego, Clase. Para cambiar la manera en que se organizan las pruebas, elije el botón Agrupar porTest Explorer group button y seleccione un nuevo criterio de agrupación.

Group tests by category in Test Explorer

Puede definir sus propios niveles de la jerarquía y del grupo por Estado y, luego, Clase, por ejemplo, si selecciona las opciones Agrupar por en el orden que prefiera.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

El Explorador de pruebas le permite agrupar las pruebas en una jerarquía. La agrupación de jerarquías predeterminada es Proyecto, Espacio de nombres y, luego, Clase. Para cambiar la manera en que se organizan las pruebas, elije el botón Agrupar porTest Explorer group button y seleccione un nuevo criterio de agrupación.

Group tests by category in Test Explorer

Puede definir sus propios niveles de la jerarquía y del grupo por Estado y, luego, Clase, por ejemplo, si selecciona las opciones Agrupar por en el orden que prefiera.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Grupos del Explorador de pruebas

Agrupar Descripción
Duración Agrupa las pruebas por tiempo de ejecución: Rápido, Medioy Lento.
Estado Agrupa las pruebas por resultados de ejecución: Pruebas no superadas, Pruebas omitidas, Pruebas superadas, No ejecutadas.
Marco de destino Agrupa las pruebas por marco de destino de sus proyectos.
Espacio de nombres Agrupa las pruebas por espacio de nombres contenedor.
Proyecto Agrupa las pruebas por proyecto contenedor.
Clase Agrupa las pruebas por clase contenedora.

Rasgos

Por lo general, un rasgo es un par nombre-valor de categoría, pero también puede ser una sola categoría. Los rasgos se pueden asignar a los métodos identificados como métodos de prueba desde el marco de pruebas unitarias. Un marco de pruebas unitarias puede definir categorías de rasgo. Si lo desea, puede agregar valores a las categorías de rasgo para definir sus propios pares nombre-valor de categoría. La sintaxis para especificar los valores y las categorías de rasgo se define desde el marco de pruebas unitarias.

Rasgos del marco de pruebas unitarias de Microsoft para código administrado

En el marco de pruebas unitarias de Microsoft para aplicaciones administradas, el par nombre-valor de rasgo se define en un atributo TestPropertyAttribute. El marco de pruebas también contiene estos rasgos predefinidos:

Rasgo Descripción
OwnerAttribute La categoría de propietario se define desde el marco de pruebas unitarias y requiere un valor de cadena del propietario.
PriorityAttribute La categoría de prioridad se define desde el marco de pruebas unitarias y requiere un valor entero de la prioridad.
TestCategoryAttribute El atributo TestCategory le permite especificar la categoría de una prueba unitaria.
TestPropertyAttribute El atributo TestProperty permite definir un par categoría-valor de rasgo.

Rasgos del marco de pruebas unitarias de Microsoft para C++

Vea How to use the Microsoft Unit Testing Framework for C++ (Cómo usar el marco de pruebas unitarias de Microsoft para C++).

Crear listas de reproducción personalizadas

Puede crear y guardar una lista de pruebas que desea ejecutar o ver como grupo. Cuando seleccione una lista de reproducción, las pruebas de la lista aparecerá en una nueva pestaña del Explorador de pruebas. Puede agregar una prueba a más de una lista de reproducción.

Para crear una lista de reproducción, elija una o varias pruebas en el Explorador de pruebas. En el menú contextual, seleccione Agregar a lista de reproducción>Nueva lista de reproducción.

Create a playlist

La lista de reproducción en una nueva pestaña del Explorador de pruebas. Puede usar esta lista de reproducción una vez y luego descartarla, o bien puede hacer clic en el botón Guardar en la barra de herramientas de la ventana de la lista de reproducción y, luego, seleccione un nombre y una ubicación para guardar la lista de reproducción.

Playlist opens in separate test explorer tab

Para crear una lista de reproducción, elija una o varias pruebas en el Explorador de pruebas. Haga clic con el botón derecho y elija Agregar a lista de reproducción>Nueva lista de reproducción.

Para abrir una lista de reproducción, elija el icono de lista de reproducción en la barra de herramientas de Visual Studio y seleccione un archivo de lista de reproducción guardado anteriormente desde el menú.

Para editar una lista de reproducción, puede hacer clic con el botón derecho en cualquier prueba y usar las opciones de menú para agregar o quitar esa prueba de una lista de reproducción.

A partir de la versión 16.7 de Visual Studio 2019, puede elegir el botón Editar en la barra de herramientas. Aparecerán casillas junto a las pruebas para reflejar qué pruebas están incluidas y excluidas en la lista de reproducción. Edite los grupos según sea necesario.

Edit Playlist button

También puede activar o desactivar las casillas de los grupos primarios de la jerarquía. Esta acción crea una lista de reproducción dinámica que siempre actualiza la lista de reproducción en función de las pruebas que haya en ese grupo. Por ejemplo, si coloca una marca de verificación junto a una clase, cualquier prueba que se agregue desde esa clase pasará a formar parte de esta lista de reproducción. Si elimina una prueba de esa clase, se quitará de la lista de reproducción. Para obtener más información sobre las reglas, guarde la lista de reproducción con el botón Guardar de la barra de herramientas y abra el archivo .playlist que se ha creado en el disco. En este archivo se enumeran todas las reglas y pruebas individuales que componen una lista de reproducción.

Playlist xml file

Si desea crear una lista de reproducción para los rasgos, use el formato siguiente para MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Use el siguiente formato para xUnit. Asegúrese de que haya un espacio entre el nombre de TestCategory y [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Puede crear y guardar una lista de pruebas que desea ejecutar o ver como grupo. Cuando seleccione una lista de reproducción, las pruebas de la lista aparecerá en una nueva pestaña del Explorador de pruebas. Puede agregar una prueba a más de una lista de reproducción.

Para crear una lista de reproducción, elija una o varias pruebas en el Explorador de pruebas. En el menú contextual, seleccione Agregar a lista de reproducción>Nueva lista de reproducción.

Create a playlist

La lista de reproducción en una nueva pestaña del Explorador de pruebas. Puede usar esta lista de reproducción una vez y luego descartarla, o bien puede hacer clic en el botón Guardar en la barra de herramientas de la ventana de la lista de reproducción y, luego, seleccione un nombre y una ubicación para guardar la lista de reproducción.

Playlist opens in separate test explorer tab

Para crear una lista de reproducción, elija una o varias pruebas en el Explorador de pruebas. Haga clic con el botón derecho y elija Agregar a lista de reproducción>Nueva lista de reproducción.

Para abrir una lista de reproducción, elija el icono de lista de reproducción en la barra de herramientas de Visual Studio y seleccione un archivo de lista de reproducción guardado anteriormente desde el menú.

Para editar una lista de reproducción, puede hacer clic con el botón derecho en cualquier prueba y usar las opciones de menú para agregar o quitar esa prueba de una lista de reproducción.

A partir de la versión 16.7 de Visual Studio 2019, puede elegir el botón Editar en la barra de herramientas. Aparecerán casillas junto a las pruebas para reflejar qué pruebas están incluidas y excluidas en la lista de reproducción. Edite los grupos según sea necesario.

Edit Playlist button

También puede activar o desactivar las casillas de los grupos primarios de la jerarquía. Esta acción crea una lista de reproducción dinámica que siempre actualiza la lista de reproducción en función de las pruebas que haya en ese grupo. Por ejemplo, si coloca una marca de verificación junto a una clase, cualquier prueba que se agregue desde esa clase pasará a formar parte de esta lista de reproducción. Si elimina una prueba de esa clase, se quitará de la lista de reproducción. Para obtener más información sobre las reglas, guarde la lista de reproducción con el botón Guardar de la barra de herramientas y abra el archivo .playlist que se ha creado en el disco. En este archivo se enumeran todas las reglas y pruebas individuales que componen una lista de reproducción.

Playlist xml file

Si desea crear una lista de reproducción para los rasgos, use el formato siguiente para MSTest.

<Playlist Version="2.0">
	<Rule Name="Includes" Match="Any">
		<Property Name="Trait" Value="SchemaUpdateBasic" />
	</Rule>
</Playlist>

Use el siguiente formato para xUnit. Asegúrese de que haya un espacio entre el nombre de TestCategory y [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
	    </Rule>
	</Rule>
  </Rule>
</Playlist>

Columnas del Explorador de pruebas

Los grupos también están disponibles como columnas en el Explorador de pruebas, junto con Rasgo, Seguimiento de la pila, Mensaje de error y Nombre completo. La mayoría de las columnas no están visibles de manera predeterminada y es posible personalizar qué columnas se ven y el orden en que se muestran.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrar, ordenar y reorganizar columnas de prueba

Las columnas se pueden filtrar, ordenar y reorganizar.

  • Para filtrar según rasgos específicos, haga clic en el icono de filtro ubicado en la parte superior de la columna Rasgos.

    Column filter

  • Para cambiar el orden de las columnas, haga clic en un encabezado de columna y arrástrelo a la izquierda o a la derecha.

  • Para ordenar una columna, haga clic en el encabezado de la columna. No todas las columnas se pueden ordenar. También puede ordenar por una columna secundaria si mantiene presionada la tecla Mayús y hace clic en un encabezado de columna adicional.

    Column sort

Columnas del Explorador de pruebas

Los grupos también están disponibles como columnas en el Explorador de pruebas, junto con Rasgo, Seguimiento de la pila, Mensaje de error y Nombre completo. La mayoría de las columnas no están visibles de manera predeterminada y es posible personalizar qué columnas se ven y el orden en que se muestran.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrar, ordenar y reorganizar columnas de prueba

Las columnas se pueden filtrar, ordenar y reorganizar.

  • Para filtrar según rasgos específicos, haga clic en el icono de filtro ubicado en la parte superior de la columna Rasgos.

    Column filter

  • Para cambiar el orden de las columnas, haga clic en un encabezado de columna y arrástrelo a la izquierda o a la derecha.

  • Para ordenar una columna, haga clic en el encabezado de la columna. No todas las columnas se pueden ordenar. También puede ordenar por una columna secundaria si mantiene presionada la tecla Mayús y hace clic en un encabezado de columna adicional.

    Column sort

Buscar y filtrar la lista de pruebas

También puede limitar los métodos de prueba en los proyectos que vea y ejecute con los filtros de búsqueda del Explorador de pruebas.

Si escribe una cadena en el cuadro de búsqueda del Explorador de pruebas y presiona Entrar, la lista de pruebas se filtrará para mostrar solo las pruebas cuyos nombres completos contengan dicha cadena.

Para filtrar por otros criterios:

  1. Abra la lista desplegable situada a la derecha del cuadro de búsqueda.

  2. Elija un criterio nuevo.

  3. Escriba el valor de filtro entre comillas. Si quiere buscar una coincidencia exacta en la cadena en lugar de una coincidencia que contenga el valor, use un signo igual (=) en lugar de dos puntos (:).

Filter tests in Test Explorer

Filter tests in Test Explorer

Nota:

Las búsquedas distinguen entre mayúsculas y minúsculas, y coinciden con la cadena especificada en cualquier parte del valor de criterios.

Calificador: Descripción
Estado Busca coincidencias en los nombres de categoría del Explorador de pruebas: Pruebas no superadas, Pruebas omitidasy Pruebas superadas.
Rasgos Busca coincidencias en el valor y en la categoría de rasgo. La sintaxis para especificar los valores y las categorías de rasgo se define en el marco de pruebas unitarias.
Nombre completo Busca coincidencias en el nombre completo de los métodos, las clases y los espacios de nombres de prueba.
Proyecto Busca coincidencias en los nombres de proyecto de prueba.
Marco de destino Busca coincidencias en los marcos de prueba.
Espacio de nombres Busca coincidencias en los espacios de nombres de prueba.
Clase Busca coincidencias en los nombres de clase de prueba.

Puede excluir un subconjunto de resultados de un filtro con la sintaxis siguiente:

FilterName:"Criteria" -FilterName:"SubsetCriteria"

Por ejemplo, FullName:"MyClass" - FullName:"PerfTest" devuelve todas las pruebas que incluyen "MyClass" en el nombre, excepto las que también incluyan "PerfTest".

Analizar la cobertura de código de prueba unitaria

Es posible determinar la cantidad de código de producto que las pruebas unitarias están probando realmente con la herramienta de cobertura de código de Visual Studio, disponible en la edición Visual Studio Enterprise. La cobertura de código se puede ejecutar en pruebas seleccionadas o en todas las pruebas de una solución.

Para ejecutar la cobertura de código en los métodos de prueba de una solución:

  • Haga clic con el botón derecho en el Explorador de pruebas y seleccione Analizar cobertura de código para las pruebas seleccionadas.

La ventana Resultados de la cobertura de código muestra el porcentaje de bloques de código de producto que se han ejecutado por línea, función, clase, espacio de nombres y módulo.

Para obtener más información, vea Usar cobertura de código para determinar la cantidad de código que se está probando.

Métodos abreviados de pruebas

Para ejecutar las pruebas desde el Explorador de pruebas, haga clic con el botón derecho en una prueba en el editor de código y seleccione Ejecutar prueba; o use los métodos abreviados del Explorador de pruebas predeterminados en Visual Studio. Algunos de los métodos abreviados dependen del contexto. Esto significa que ejecutan, depuran o crean un perfil de pruebas en función de la posición del cursor en el editor de código. Si el cursor está dentro de un método de prueba, se ejecuta ese método de prueba. Si el cursor está en el nivel de clase, se ejecutan todas las pruebas de esa clase. Lo mismo sucede en el nivel de espacio de nombres.

Comandos más frecuentes Métodos abreviados de teclado
TestExplorer.DebugAllTestsInContext Ctrl+R, Ctrl+T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Nota

No se puede ejecutar una prueba en una clase abstracta, ya que las pruebas solo se definen en las clases abstractas, no se crean instancias. Para ejecutar pruebas en las clases abstractas, cree una clase que se derive de la clase abstracta.

Notificación de audio de la prueba

Explorador de pruebas puede reproducir un sonido cuando se completa una serie de pruebas. Hay dos sonidos: uno para indicar que la serie de pruebas se ha realizado correctamente con todas las pruebas superadas y otro para indicar que la serie de pruebas se ha completado con al menos una prueba con errores. Puede configurar estos sonidos en el cuadro de diálogo de sonido predeterminado de Windows 11. Esta característica está disponible a partir de Visual Studio 2019, actualización 16.9, versión preliminar 3.

  1. Abra el cuadro de diálogo de sonido predeterminado de Windows 11.
  2. Vaya a la pestaña Sonidos.
  3. Busque la categoría Microsoft Visual Studio. Elija los sonidos Test Run Succeeded (Serie de pruebas correcta) o Test Run Failed (Serie de pruebas con errores) para seleccionar los sonidos preestablecidos o buscar su propio archivo de audio.
    Windows 11 sound dialog