Тесты из других файлов выполняются с помощью unittest.main () - PullRequest
0 голосов
/ 17 мая 2019

Я использую spyder (3.3.4) для запуска некоторых модульных тестов python (3.7). У меня есть два разных сценария, которые используют unittest и unittest.main (), открытые в spyder: test_1.py и test_2.py. Оба сохраняются в одной папке.

Если я запускаю test_1.py до запуска test_2.py, я получаю ожидаемые результаты; запускаются только тесты в test_1.py.

Если я затем запускаю test_2.py, тесты в test_2.py запускаются, но затем также запускаются тесты в test_1.py. Если я перезапущу ядро ​​Ipython между запуском test_1.py и test_2.py, то, как и ожидалось, запускается только test_2.py. Самое странное, что если я закрою test_1.py после его запуска, выходные данные test_1.py будут по-прежнему печататься при запуске test_2.py.

Почему это происходит?

Я предполагаю, что это связано с тем, как переменная __name__ сохраняется в консоли IPython или как unittest.main () ищет тесты?

Вот код для моих двух тестовых сценариев:
test_1.py:

import unittest

class TestStuff(unittest.TestCase):
    def test_1(self):
        print('test 1')
        pass
    def test_2(self):
        print('test 2')
        pass

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

и test_2.py:

import unittest

class TestOtherStuff(unittest.TestCase):
    def test_this(self):
        print('this')
        pass
    def test_that(self):
        print('that')
        pass

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

Спасибо!

...