Desidero avere i file della mia applicazione nella cartella/File, mentre le unità di test in/UnitTests, in modo da avere app e test chiaramente separati.Python unittest: eseguire test in un altro modulo
Per poter utilizzare gli stessi percorsi del modulo di mainApp.py, ho creato un testController.py nella cartella principale.
mainApp.py
testController.py
Files
|__init__.py
|Controllers
| blabla.py
| ...
UnitTests
|__init__.py
|test_something.py
Quindi, se in test_something.py Voglio testare una funzione che è in /Files/Controllers/blabla.py, provo il seguente:
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 poi dal file testController.py, ho eseguire il seguente codice:
import TestUnits.test_something as my_test
my_test.unittest.main()
quali uscite fallimenti, ma nessun test eseguito
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
[Finished in 0.3s]
Ho provato con un test che non ha dipendenze, e se eseguito come "principale" funziona, ma quando chiamato dall'esterno, emette lo stesso:
import unittest
def tested_unit():
return True
class TestMyUnit(unittest.TestCase):
def test_stupid(self):
self.assertTrue(tested_unit())
if __name__ == '__main__':
unittest.main()
Domanda: come faccio a farlo funzionare?
Questo è un po ' un po 'prolisso, ma funziona, grazie. – bgusach