Mi carpeta unittest está organizada de esta manera.Descubrimiento de la prueba unitaria Python con subcarpetas
.
|-- import
| |-- import.kc
| |-- import.kh
| `-- import_test.py
|-- module
| |-- module.kc
| |-- module.kh
| `-- module_test.py
`-- test.py
me gustaría simplemente ejecute test.py
para ejecutar cada uno de mis *_test.py
usando unittest módulo de Python. Actualmente, mi test.py contiene
#!/usr/bin/env python
import unittest
if __name__ == "__main__":
suite = unittest.TestLoader().discover('.', pattern = "*_test.py")
unittest.TextTestRunner(verbosity=2).run(suite)
La documentación de Python dice que debería detectar automáticamente mi prueba en las subcarpetas. Pero no es así
Por el momento, sólo se da salida a
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Estoy seguro de que no es un problema con mi archivo *_test.py
, porque cuando los muevo en el directorio raíz, que funciona bien .. Lo am Estoy haciendo mal?
Funcionó simplemente tocando el archivo '__init __. Py', gracias. ¿Puedes explicarme por qué tengo que hacer esto? ¿Y hay otra solución que? Porque estoy trabajando con otras personas, y me gustaría que las pruebas sean la forma más fácil de crear. – tomahh
Este es un artefacto de la forma en que se implementa el descubrimiento de prueba. Esencialmente, cada directorio que contiene una prueba tiene que ser importable como un módulo de Python. Consulte [docs] (http://docs.python.org/2/library/unittest.html#test-discovery) para obtener más información. –