Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las pruebas unitarias son fragmentos de código que prueban otras unidades de código en una aplicación, normalmente funciones aisladas, clases, etc. Cuando una aplicación supera todas sus pruebas unitarias, puede estar seguro de que al menos la funcionalidad del programa de bajo nivel es correcta.
Python usa pruebas unitarias ampliamente para validar escenarios al diseñar un programa. La compatibilidad con Python en Visual Studio incluye la detección, ejecución y depuración de pruebas unitarias dentro del contexto del proceso de desarrollo, sin necesidad de ejecutar pruebas por separado.
En este artículo se proporciona un breve esquema de las funcionalidades de pruebas unitarias en Visual Studio con Python. Para obtener más información sobre las pruebas unitarias en general, consulte Prueba unitaria del código.
Prerrequisitos
Visual Studio en Windows instalado con compatibilidad con cargas de trabajo de Python. Para obtener más información, consulte Instalación de compatibilidad con Python en Visual Studio.
Un proyecto de Python con código o una carpeta con código de Python.
Visual Studio para Mac no es compatible. Para obtener más información, consulte ¿Qué ocurre con Visual Studio para Mac? Visual Studio Code en Windows, Mac y Linux funciona bien con Python a través de extensiones disponibles.
Selección del marco de pruebas para un proyecto de Python
Visual Studio admite dos marcos de pruebas para Python, unittest y pytest (disponible en Visual Studio 2019, versión 16.3 y posteriores). De forma predeterminada, no se selecciona ningún marco al crear un proyecto de Python.
Siga estos pasos para seleccionar el marco de pruebas del proyecto de Python:
En el Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto y seleccione Propiedades.
En el panel Propiedades del proyecto, seleccione la pestaña Prueba y elija el tipo de marco de pruebas :
Para el marco unittest , Visual Studio asigna el directorio Raíz del proyecto para la detección de pruebas. El valor predeterminado es
., pero puede especificar una ubicación diferente al configurar los valores del proyecto. También puede especificar una o varias cadenas para el patrón de nombre de archivo de prueba, comotest*.py, test_*.py.Para el marco pytest , las opciones de prueba, como la ubicación de prueba y los patrones de nombre de archivo, se especifican mediante el archivo de configuración estándar pytest .ini . De forma predeterminada, la carpeta workspace/project se usa para la ubicación. El patrón de nombre de archivo predeterminado incluye
test_*pyy*_test.py. Para más información, consulte la documentación de referencia de pytest.
Nota:
Al definir el patrón de nombre de archivo, tenga en cuenta que los caracteres especiales como el carácter de subrayado (
_) no coinciden con el carácter comodín (*). Si desea usar caracteres especiales en el nombre de archivo, especifique estos caracteres en la definición de patrón, comotest_*.py.Para guardar la selección y la configuración del marco, puede usar el método abreviado de teclado Ctrl+S .
Después de configurar el marco, Visual Studio inicia la detección de pruebas y abre el Explorador de pruebas.
Configuración de pruebas para Python sin un proyecto
Visual Studio permite ejecutar y probar el código de Python existente sin un proyecto, abriendo una carpeta con código de Python. En este escenario, debe usar un archivo PythonSettings.json para configurar las pruebas.
Abra el código de Python existente mediante la opción Abrir una carpeta local :
Al abrir una carpeta de Python, Visual Studio crea varias carpetas ocultas para administrar la configuración relacionada con el programa. Para ver estas carpetas (y cualquier otro archivo y carpetas ocultos, como la carpeta .git ) en el Explorador de soluciones, seleccione la opción Mostrar todos los archivos :
En el Explorador de soluciones, expanda la carpeta Configuración local y haga doble clic en el archivo PythonSettings.json para abrir el archivo en el editor.
Nota:
La mayoría de las configuraciones muestran dos archivos de configuración: PythonSettings.json y ProjectSettings.json. Para este ejercicio, debe modificar el archivo PythonSettings.json .
Si no ve el archivo PythonSettings.json en la carpeta Configuración local , puede crearlo manualmente:
Haga clic con el botón derecho en la carpeta Configuración local y seleccione Agregar>nuevo archivo.
Asigne al archivo el nombrePythonSettings.jsony seleccione Entrar para guardar los cambios.
Visual Studio abre automáticamente el nuevo archivo en el editor.
En el archivo PythonSettings.json, agregue el código siguiente para definir .
TestFrameworkEstablezca el valor del marco en pytest o unittest en función del marco de pruebas deseado:{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }Para el marco unittest , si no define valores específicos para la
UnitTestRootDirectoryconfiguración yUnitTestPatternen el archivo PythonSettings.json , Visual Studio agrega automáticamente estos campos con los valores predeterminados de.ytest*.py, respectivamente.Para el marco pytest , las opciones de configuración siempre se especifican en el archivo de configuración de pytest .ini en lugar de a través de la configuración de Visual Studio.
Si el programa de Python contiene una carpeta src independiente de la carpeta que contiene las pruebas, especifique la ruta de acceso a la carpeta src con la
SearchPathsconfiguración del archivo PythonSettings.json :"SearchPaths": [".\\src"]Guarde los cambios en el archivo PythonSettings.json .
Después de configurar el marco, Visual Studio inicia la detección de pruebas para el marco especificado. Puede acceder a la prueba en el Explorador de pruebas.
Añadir y descubrir pruebas
De forma predeterminada, Visual Studio identifica las pruebas unittest y pytest como métodos cuyos nombres comienzan por test.
Para ver cómo Visual Studio inicia la detección de pruebas, siga estos pasos:
Abra un proyecto de Python en Visual Studio.
Establezca las propiedades del marco de pruebas para el proyecto, como se describe en Seleccionar marco de pruebas para el proyecto de Python.
En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Agregar>nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento, seleccione el tipo de archivo Prueba unitaria de Python.
Escriba un nombre de archivo que satisfaga la definición de patrón que especificó para las propiedades del proyecto.
Selecciona Agregar.
Visual Studio crea el archivo de prueba con código predeterminado:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()Este código importa el módulo estándar
unittesty deriva una clase de prueba delunittest.TestCasemétodo . Al ejecutar el script directamente, este código también invoca launittest.main()función .
Al agregar nuevos archivos de prueba, Visual Studio los pone a disposición en el Explorador de pruebas.
Visualización de pruebas con el Explorador de pruebas
Después de configurar el marco de pruebas y los archivos de prueba, Visual Studio busca pruebas y los muestra en el Explorador de pruebas.
Estas son algunas de las formas en que puede trabajar con el Explorador de pruebas:
Abra la ventana Explorador de pruebas seleccionando Explorador>.
Cuando se abra la ventana Explorador de pruebas, use el método abreviado de teclado CTRL+R, A para desencadenar la detección de pruebas.
Haga doble clic en una prueba en el Explorador de pruebas para abrir el archivo de código fuente correspondiente en el editor:
Organice la vista de las pruebas mediante la opción Agrupar por en la barra de herramientas:
Filtre las pruebas por nombre escribiendo texto en el campo Buscar :
Ejecute pruebas y vea el estado de la ejecución de pruebas, como se describe en la sección siguiente.
Para obtener más información sobre el unittest módulo y escribir pruebas, consulte la documentación de Python.
Ejecución de pruebas con el Explorador de pruebas
En el Explorador de pruebas, puede ejecutar pruebas de varias maneras:
- Seleccione Ejecutar todo (pruebas en la vista) para ejecutar todas las pruebas que se muestran en la vista actual en función de la configuración del filtro.
- Utilice comandos en el menú Ejecutar para ejecutar como un grupo las pruebas erróneas, aprobadas o no ejecutadas.
- Seleccione una o varias pruebas y, a continuación, haga clic con el botón derecho y seleccione la opción Ejecutar pruebas seleccionadas .
Visual Studio ejecuta las pruebas en segundo plano. El Explorador de pruebas actualiza el estado de cada prueba a medida que se completa:
Las pruebas superadas muestran una marca de verificación verde y el tiempo necesario para completar la ejecución de la prueba:
Las pruebas fallidas muestran una X roja con un enlace Salida que muestra el resultado de la consola y el
unittestde la ejecución de la prueba:
Comprobación de las pruebas con el depurador
Las pruebas unitarias son fragmentos de código que están sujetos a errores como cualquier otro código y, en ocasiones, deben ejecutarse en un depurador. En el Depurador de Visual Studio, puede establecer puntos de interrupción, examinar variables y recorrer el código. Visual Studio también proporciona herramientas de diagnóstico para pruebas unitarias.
Revise estos puntos sobre cómo comprobar las pruebas con el depurador de Visual Studio:
De forma predeterminada, la depuración de pruebas usa el depurador debugpy para Visual Studio 2019 versión 16.5 y versiones posteriores. Algunas versiones anteriores de Visual Studio usan el depurador ptvsd 4 . Si usa una versión anterior de Visual Studio y prefiere el depurador ptvsd 3, seleccione la opción Usar depurador heredado en Opciones de herramientas>>Depuración de>.
Para iniciar la depuración, establezca un punto de interrupción inicial en el código y haga clic con el botón derecho en la prueba (o una selección) en el Explorador de pruebas y seleccione Depurar pruebas seleccionadas. Visual Studio inicia el depurador de Python como lo haría con el código de la aplicación.
Si lo prefiere, puede usar la opción de analizar la cobertura de código para las pruebas seleccionadas. Para obtener más información, vea Usar cobertura de código para determinar la cantidad de código que se está probando.