, Accesorio de A (Traducción: Fix aquí) de conftest.py: archivo (Traducción de ConocoPhillips Teste)
- Al definir accesorio, necesario introducir PYtest importación
- Definir un accesorio común: pre + post, una pluralidad de clases de prueba puede ser llamado
- PYtest archivo proporcionado conftest.py puede aparato: pre + post, se define en este documento
- Cuando se ejecuta la prueba, no es necesario importar este archivo, se pasará automáticamente a encontrar conftest.py (Traducción: ConocoPhillips Teste) el archivo, a continuación, ir a buscar a los correspondientes
-
Compartir archivos: nombre del archivo conftest.py no se pueden cambiar, porque, sin necesidad de introducir accesorio que se puede utilizar
En segundo lugar, crear el archivo conftest.py que define el delantero y trasero
La función de dispositivo de palabra clave de rendimiento como la línea divisoria delantera y trasera, y el rendimiento también puede recibir tuplas devueltas valor de retorno, actúa como retorno
producir (traducción: UTE): línea que divide, resultado de retorno frente
PYtest importación @ pytest.fixture () DEF init_demo (): impresión ( "Es la pre-test") A. 1 = la línea de separación rendimiento # A (rendimiento + valor de retorno) de impresión ( "Es la post-test". )
En tercer lugar, llamar a la luminaria
1. Las llamadas directas en caso de prueba
El nombre de la función accesorios como los parámetros de casos de prueba
Si el aparato tiene un valor de retorno, el nombre de función de prueba fijo en la recepción del valor de retorno, el nombre de la función y el aparato se puede utilizar como valor de retorno
def test_add_01 (init_demo): b = init_demo + 2 aserción 3 == b
El resultado:
2. Llama a la luminaria con el decorador accesorio
En frente de la clase de prueba / ensayo más @ pytest.mark.usefixtures ( 'accesorio nombre de función')
ps: definiciones de archivo conftest.py, en este archivo se pueden definir múltiples accesorio, PYtest buscará automáticamente el archivo
importación PYtest @ pytest.mark.usefixtures ( 'init_demo') def test_add_02 (): b = 1 + 2 aserción 3 == b
El resultado:
3. pide autouse accesorio
- Al definir accesorio, hay un parámetro autouse, la configuración predeterminada en False
- Cuando el valor predeterminado es Falso, puede ser seleccionado mediante el uso de las dos formas anteriores accesorio
- Cuando se establece en Ture, en toda la prueba llamará automáticamente una sesión de la fijación, se recomienda que el interruptor debe utilizar con precaución
conftest código es el siguiente:
PYtest importación @ pytest.fixture (autouse = Ture) DEF init_demo (): impresión ( "Es la pre-test") el rendimiento de impresión ( "Fue el post-test")
Código de ensayo es el siguiente:
importar PYtest def test_add_02 (): b = 1 + 2 aserción 3 == b
El resultado:
Cuatro, herencia accesorio (la parte delantera de la parte delantera, trasera, la parte trasera)
- Alcance (palabra clave alcance): función / nivel de función (caso de prueba), la clase / clase de nivel (clase de prueba), módulo de E / nivel de módulo (módulo de prueba archivos -py), sesión / nivel de sesión (ejecución de la prueba durante toda la sesión)
- Metáfora: Galleta
- Las enfermedades hereditarias: Alcance Alcance heredadas del interior hacia fuera, también puede heredar el mismo nivel de alcance
- Orden de ejecución: pre-ejecuta desde el exterior a la capa interior, la capa interior a la exterior posterior ejecutado, realice el ámbito de aplicación de la capa más interna, una capa en la realización de su ámbito de aplicación, no pudo encontrar una hacia fuera hasta hasta que el dominio
- métodos heredados: directamente al nombre de la función como un accesorio heredado se pueden pasar al Senado
- Devuelve: hereda la clase padre, sino también heredaron el valor de retorno de la clase padre
conftest.py código es el siguiente:
PYtest importación @ pytest.fixture (scope = 'la sesión') init_session DEF (): Imprimir ( "es una sesión de pre-test") el rendimiento de impresión ( "Es la sesión de post-test") @ pytest.fixture (scope = 'Module1') DEF la init_module (init_session): Imprimir ( "es un módulo de pre-test") el rendimiento de impresión ( "es un módulo de post-test") @ pytest.fixture (scope = 'clase') DEF init_class (la init_module ): Imprimir ( "es una clase de pre-test") el rendimiento de impresión ( "es una clase de prueba post") @ # pytest.fixture pytest.fixture corresponde @ (scope = 'función') DEF init_function (init_class) : Imprimir ( "este es un caso de prueba de la parte delantera") rendimiento de impresión ( "este es el caso post-test")
Código de ensayo es el siguiente:
PYtest importación @ pytest.mark.usefixtures ( 'init_function') def test_demo (): print ( '测试用例') afirman 3 == 3
El resultado:
Cinco niveles de alcance
Uso accesorio de la orden - el cual subdirectorios, también puede tener su propio conftest
- En primer lugar con su propia, y luego ir conftest.py en el mismo directorio y luego ir al siguiente nivel de directorio en conftest.py