Resumen
En este módulo, ha explorado las características pytest que le ayudan a escribir pruebas más expresivas y fáciles de mantener. Usó @pytest.mark.parametrize para ejecutar la misma función de prueba con varios valores de entrada. Pytest recopila cada conjunto de parámetros como un caso de prueba independiente, por lo que los informes pueden identificar exactamente qué entrada se pasó o no.
También ha usado accesorios. Los fixtures proporcionan código de configuración reutilizable, hacen que las dependencias de prueba sean explícitas a través de argumentos de función y pueden administrar la limpieza mediante el desmontaje basado en yield y los ámbitos de accesorio adecuados. Ha aplicado estas ideas creando pruebas parametrizadas y refactorizando una prueba basada en clases, pasando del enfoque de tipo xUnit setup_method() y teardown_method() a un accesorio personalizado que utiliza el accesorio tmp_path de pytest para el control temporal de archivos. También ha revisado los accesorios integrados, incluido tmp_path, que proporciona un pathlib.Path directorio temporal para cada invocación de función de prueba y monkeypatch, que cambia temporalmente atributos, valores de diccionario, variables de entorno sys.path o el directorio de trabajo actual y restaura esos cambios después de que finalice la prueba o el accesorio solicitante.
Ahora puede hacer lo siguiente:
- Use la parametrización para cubrir varias entradas sin repetir funciones de prueba.
- Lea la salida de pytest para diagnosticar qué valores de parámetro pasan o no.
- Cree accesorios personalizados para compartir la lógica de configuración y limpieza.
- Elija ámbitos de accesorios en función de la frecuencia con la que se debe ejecutar la instalación y cuándo debe producirse la limpieza.
- Coloque los accesorios compartidos en
conftest.pypara que las pruebas en el mismo directorio y sus subdirectorios puedan solicitarlos sin importaciones explícitas. - Utiliza accesorios integrados, incluidos
tmp_pathpara archivos temporales ymonkeypatchpara cambios de estado acotado, para aislar las pruebas que dependen de archivos, variables de entorno, importaciones o estado externo.
Para obtener más información, consulte la documentación de pytest para parametrizar pruebas, accesorios, accesorios integrados, directoriostemporales y archivos, configuración de estilo xUnit y monkeypatch.