Python unittesting: Führen Sie Tests in einem anderen Modul aus

Ich möchte die Dateien meiner Anwendung unter dem Ordner / Files haben, während die Testeinheiten in / UnitTests sind, damit ich App und Test klar getrennt habe.

Um die gleichen Modulrouten wie die mainApp.py verwenden zu können, habe ich im Root-Ordner eine testController.py angelegt.

mainApp.py
testController.py
Files
  |__init__.py
  |Controllers
     | blabla.py
  | ...
UnitTests
  |__init__.py
  |test_something.py

Wenn ich also in test_something.py eine Funktion testen möchte, die sich in /Files/Controllers/blabla.py befindet, 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 führe ich aus der Datei testController.py den folgenden Code aus:

import TestUnits.test_something as my_test
my_test.unittest.main()

Welches keine Fehler ausgibt, aber keine Tests ausgeführt

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
[Finished in 0.3s]


Ich habe versucht, mit einem Test, der keine Abhängigkeiten hat, und wenn ausgeführt als "Main"funktioniert, aber wenn es von außen aufgerufen wird, wird dasselbe ausgegeben:

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 zum Laufen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage