Teste unitário em Python: execute testes em outro módulo
Eu quero ter os arquivos do meu aplicativo sob a pasta / arquivos, enquanto as unidades de teste em / UnitTests, de modo que eu separei claramente app e teste.
Para poder usar as mesmas rotas de módulo que o mainApp.py, criei um testController.py na pasta raiz.
mainApp.py
testController.py
Files
|__init__.py
|Controllers
| blabla.py
| ...
UnitTests
|__init__.py
|test_something.py
Então, se em test_something.py eu quiser testar uma função que está em /Files/Controllers/blabla.py, eu tento o seguinte:
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()
E a partir do arquivo testController.py, eu executo o seguinte código:
import TestUnits.test_something as my_test
my_test.unittest.main()
Que não gera falhas, mas nenhum teste executado
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
[Finished in 0.3s]
Eu tentei com um teste que não tem dependências, e se executado como "a Principal"funciona, mas quando chamado de fora, gera o mesmo:
import unittest
def tested_unit():
return True
class TestMyUnit(unittest.TestCase):
def test_stupid(self):
self.assertTrue(tested_unit())
if __name__ == '__main__':
unittest.main()
Pergunta: como faço para que isso funcione?