python python-3.x unit-testing python-unittest

Detección de prueba de unidad recursiva con python3 y sin archivos__init__.py



python-3.x unit-testing (2)

Lo busqué, y creo que es muy probable que sea un error.

Así que creé un informe de error de Python y un PR que soluciona el problema para mí.

Clone y vea si también funciona para usted, con la solución a la mejor manera de ejecutar el descubrimiento fue python -m unittest discover -s tests . De lo contrario, buscará, por ejemplo, entornos virtuales que estén debajo del directorio superior.

Tengo proyecto con la siguiente estructura de directorios:

. ├── requirements.txt ├── main.py ├── tests ├── unit │ └── test_thing1.py │ └── test_thing2.py └── integration └── test_integration_thing1.py └── test_integration_thing2.py

Quiero ejecutar todas las pruebas con un comando . Si hago python -m unittest discover , no se ejecutan pruebas.

Encontré esta pregunta que sugiere agregar un archivo __init__.py para hacer que los paquetes salgan de la unit y las carpetas de integration . La solución funciona, y todas las pruebas se ejecutan de esta manera.

Pero como estoy usando los archivos python3 y __init__.py con los paquetes de espacio de nombres implícitos , me preguntaba si habría una manera de hacer que esto funcione sin esos archivos __init__.py .


Utilice pytest. Lo hace descubrir pruebas en carpetas.

En su caso, solo necesita instalarlo en pip ( pip install pytest ) y luego ejecutarlo en su carpeta raíz de pytest tests .