Pytest - Conftest.py

Podemos definir las funciones del dispositivo en este archivo para que sean accesibles a través de múltiples archivos de prueba.

Crea un archivo nuevo conftest.py y agregue el siguiente código en él:

import pytest

@pytest.fixture
def input_value():
   input = 39
   return input

Edite el test_div_by_3_6.py para eliminar la función de luminaria -

import pytest

def test_divisible_by_3(input_value):
   assert input_value % 3 == 0

def test_divisible_by_6(input_value):
   assert input_value % 6 == 0

Crea un archivo nuevo test_div_by_13.py -

import pytest

def test_divisible_by_13(input_value):
   assert input_value % 13 == 0

Ahora tenemos los archivos test_div_by_3_6.py y test_div_by_13.py haciendo uso de la luminaria definida en conftest.py.

Ejecute las pruebas ejecutando el siguiente comando:

pytest -k divisible -v

El comando anterior generará el siguiente resultado:

test_div_by_13.py::test_divisible_by_13 PASSED
test_div_by_3_6.py::test_divisible_by_3 PASSED
test_div_by_3_6.py::test_divisible_by_6 FAILED
============================================== FAILURES
==============================================
________________________________________ test_divisible_by_6
_________________________________________
input_value = 39
   def test_divisible_by_6(input_value):
>  assert input_value % 6 == 0
E  assert (39 % 6) == 0
test_div_by_3_6.py:7: AssertionError
========================== 1 failed, 2 passed, 6 deselected in 0.09 seconds
==========================

Las pruebas buscarán el accesorio en el mismo archivo. Como el dispositivo no se encuentra en el archivo, buscará el dispositivo en el archivo conftest.py. Al encontrarlo, se invoca el método fixture y el resultado se devuelve al argumento de entrada de la prueba.