Python unittesting: ejecuta pruebas en otro módulo
Quiero tener los archivos de mi aplicación debajo de la carpeta / Archivos, mientras que las unidades de prueba se encuentran en / UnitTests, por lo que he separado la aplicación y la prueba.
Para poder usar las mismas rutas de módulo que mainApp.py, he creado un testController.py en la carpeta raíz.
mainApp.py
testController.py
Files
|__init__.py
|Controllers
| blabla.py
| ...
UnitTests
|__init__.py
|test_something.py
Así que si en test_something.py quiero probar una función que está en /Files/Controllers/blabla.py, intento lo siguiente:
import unittest
import Files.Controllers.blabla as blabla
class TestMyUnit(unittest.TestCase):
def test_stupid(self):
self.assertTrue(blabla.some_function())
if __name__ == '__main__':
unittest.main()
Y luego desde el archivo testController.py, ejecuto el siguiente código:
import TestUnits.test_something as my_test
my_test.unittest.main()
Que no produce fallos, pero no pruebas ejecutadas
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
[Finished in 0.3s]
He intentado con una prueba que no tiene dependencias, y si se ejecuta como "principal"funciona, pero cuando se llama desde afuera, produce el mismo resultado:
import unittest
def tested_unit():
return True
class TestMyUnit(unittest.TestCase):
def test_stupid(self):
self.assertTrue(tested_unit())
if __name__ == '__main__':
unittest.main()
Pregunta: ¿Cómo consigo que esto funcione?