Ich möchte die Dateien meiner Anwendung unter dem Ordner/Dateien haben, während die Test Units in/UnitTests, so dass ich App und Test klar getrennt habe.Python UnitTesting: Tests in einem anderen Modul ausführen
Um die gleichen Modulrouten wie mainApp.py verwenden zu können, habe ich eine testController.py im Stammordner erstellt.
mainApp.py
testController.py
Files
|__init__.py
|Controllers
| blabla.py
| ...
UnitTests
|__init__.py
|test_something.py
Also, wenn in test_something.py ich eine Funktion testen möchten, die in /Files/Controllers/blabla.py ist, versuche ich folgendes:
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()
Und dann aus der Datei testController.py, ausführen ich den folgenden Code:
import TestUnits.test_something as my_test
my_test.unittest.main()
, die keine Ausfälle gibt, aber keine Tests ausgeführt
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
[Finished in 0.3s]
Ich habe mit einem Test versucht, die keine Abhängigkeiten hat, und wenn sie ausgeführt werden als „Haupt“ funktioniert, aber wenn von außen genannt, gibt die gleiche:
import unittest
def tested_unit():
return True
class TestMyUnit(unittest.TestCase):
def test_stupid(self):
self.assertTrue(tested_unit())
if __name__ == '__main__':
unittest.main()
Frage: Wie bekomme ich das zur Arbeit?
Dies ist ein wenig bisschen ausführlich, aber es funktioniert, danke. – bgusach