Используйте `__name__ ==" __main __ ":` внутри класса, который реализует `unittest.TestCase` - PullRequest
3 голосов
/ 24 февраля 2020

У меня есть unittest.TestCase с очень тяжелым классом установки

Я хотел бы запустить его, используя макет, если код запускается как основной, и запустить полную проверку данных, если он выполняется через импорт следующим образом:

import unittest
from utilities import create_full_data,create_mock_data

if __name__ == "__main__":
    print(' I want to run this block if code starts from here')
    data_to_check=create_mock_data()
else:
    print(' I want to run this block if imported')
    data_to_check = create_full_data()


class Test_payer_seg(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.data_to_test = data_to_check

    def test_data_qaulity(self):
        self.assertTrue(1==1)

Похоже, что проблема возникает, поскольку под капотом nosetests обнаруживает как python тесты и запускает его как внутренний процесс, следовательно, __name__ не может стать 'основным '.

Как я могу создать поток, который запускает его как фиктивный, если он запускает основной?

Обратите внимание, что эта проблема может возникнуть, так как я запускаю его, используя pycharm

1 Ответ

1 голос
/ 24 февраля 2020

pycharm распознает его как модульное тестирование и автоматически запускает его с использованием установленного пакета модульного тестирования. Вы можете создать новую Python конфигурацию с полным путем скрипта и рабочим каталогом. Это запустит ваш раздел main без использования пакета модульных тестов.

...