Python unittesting: uruchom testy w innym module

Chcę mieć pliki mojej aplikacji w folderze / Pliki, podczas gdy jednostki testowe w / UnitTests, dzięki czemu mam wyraźnie oddzieloną aplikację i test.

Aby móc korzystać z tych samych tras modułu, co mainApp.py, utworzyłem testController.py w folderze głównym.

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

Więc jeśli w test_something.py chcę przetestować jedną funkcję, która znajduje się w /Files/Controllers/blabla.py, próbuję:

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()


A następnie z pliku testController.py wykonuję następujący kod:

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

Który nie generuje błędów, ale nie wykonano testów

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

OK
[Finished in 0.3s]


Próbowałem z testem, który nie ma zależności i jeśli jest wykonywany jako „Główny„działa, ale gdy jest wywoływany z zewnątrz, wyświetla to samo:

import unittest


def tested_unit():
    return True


class TestMyUnit(unittest.TestCase):

    def test_stupid(self):
        self.assertTrue(tested_unit())


if __name__ == '__main__':
    unittest.main()

Pytanie: jak to działa?

questionAnswers(3)

yourAnswerToTheQuestion