Prólogo
Firmware Fixture es algunas funciones, pytest las cargará y ejecutará antes (o después) de ejecutar la función de prueba. Se utiliza principalmente cuando algunos casos de prueba individuales deben preestablecerse y limpiarse. A diferencia de la configuración y el desmontaje, el firmware de prueba es una función personalizada que puede especificar ciertos casos de uso para ejecutar la función personalizada de este firmware
Ejemplos
pytest.fixture @ () DEF texto (): Imprimir ( " iniciar " ) # uso pytest.fixture () para convertirse en un accesorio decorativo DEF test_one (): Imprimir ( " puesta en práctica de un caso de uso " ) DEF test_two (texto) : # de casos de uso accesorio de entrada nombre de la función, con el fin de confirmar la ejecución de impresión ( " aplicación del segundo caso de uso " )
El primer parámetro no ejecutará la función personalizada que ejecuta primero el firmware
La función de firmware utiliza el rendimiento para definir el código que se ejecuta después de que se ejecuta el caso de uso
@ pytest.fixture () def text (): print ( " iniciar ejecución " ) rendimiento # El código después del rendimiento pertenece al procesamiento posterior, y ejecutará print ( " ejecución completada " ) después de que se complete la prueba def test_one (): print ( " ejecutar El primer caso de uso " ) def test_two (texto): print ( " Ejecutar el segundo caso de uso " )
Use el archivo conftest.py para administrar centralmente el firmware
import pytest @ pytest.fixture (scope = " session " ) def start (): print ( " \ n 打开 首页" )
Python cargará automáticamente el firmware de prueba personalizado en el archivo conftest.py del módulo actual. Generalmente, puede definir un firmware de prueba personalizado más general en el directorio raíz
Tenga en cuenta que el nombre del archivo conftest.py es el nombre especificado por el sistema
parámetros de alcance
- función: nivel de función, cada función de prueba ejecutará el firmware una vez;
- clase: nivel de clase, cada clase de prueba se ejecuta una vez, se pueden usar todos los métodos;
- módulo: nivel de módulo, cada módulo se ejecuta una vez, se pueden usar las funciones y métodos del módulo;
- sesión: nivel de sesión, una prueba solo se ejecuta una vez, todas las funciones y métodos encontrados están disponibles.
Automatización y parametrización de firmware de prueba personalizado.
El firmware de prueba personalizado se puede automatizar utilizando el parámetro autouse sin pasar funciones. Los parámetros se pueden usar para la parametrización
./ conftest.py @ pytest.fixture (scope = " module " , params = [ ' test1 ' , ' test2 ' ], autouse = True) def text (request): print ( " inicio de ejecución " ) rendimiento request.param print ( " acabada " ) . / test_sample.py DEF test_one (): # este caso de uso se ejecutará de impresión ( " puesta en práctica de un caso de uso " ) Imprimir(texto) def test_two (texto): print ( " Ejecutar el segundo caso de uso " )