Pytest proporciona un mecanismo para agregar etiquetas o marcas personalizadas en las funciones de prueba, así mismo, un test puede tener más de una etiqueta y una misma etiqueta puede estar en múltiples pruebas.
Creemos el archivo python, dentro de este archivo creamos dos métodos test_send_http() y test_something_quick(), al método test_send_http(), le agregamos una marca @pytest.mark.webtest, de forma que el archivo queda de la siguiente forma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import pytest @pytest.mark.webtest def test_send_http(): pass def test_something_quick(): pass def test_another(): pass |
Podemos ejecutar los métodos que tiene la marca de la siguiente forma:
1 | $ pytest -v -m webtest tasks_proj/tests/unit/test_marks_server.py |
Esto nos sirve para ejecutar sólo aquellos test que hayamos marcado, también podríamos ejecutar todos los test excepto aquellos que tienen nuestra marca:
1 | $ pytest -v -m “not webtest” tasks_proj/tests/unit/test_marks_server.py |
Agregar una Marca Personalizada
Las marcas se pueden registrar en el archivo pytest.ini, lo que nos permite tener información de aquellas marcas personalizadas que generemos:
1 2 3 4 5 | [pytest] markers = # webtest webtest: Test for the web application |
Etiquetando una clase
También podemos marcar una clase, al realizar esto, cuando llamemos a dicha marca, se ejecutan todos los test que tenga esta clase:
1 2 3 4 5 6 7 8 9 10 11 | import pytest @pytest.mark.test_class class TestClass: def test_startup(self): pass def test_startup_and_more(self): pass |
Ejecutamos:
1 | $ pytest -v -m test_class tasks_proj/tests/unit/test_marks_class.py |
Ejecutamos las pruebas con -v para este archivo y observamos que se ejecuta el test con cada una de nuestras combinaciones.
Casos en los cuales se pueden aplicar las marcas:
- Si tenemos diferentes secciones, como web-back-end o mobile-back-end, por ejemplo, se podrían realizar pruebas de una u otra sección.
- Si tenemos diferentes versiones de un API, se podrían realizar las pruebas para una determinada versión, aquella que modificamos, de esta forma, nos enfocamos en aquellas pruebas que deseamos revisar.