Из определения проблемы я предполагаю, что вы используете ms- windows, и что основной модуль не называется __main__.py
.
В этом случае multiprocessing
имеет некоторые специальные рекомендации:
Убедитесь, что основной модуль может безопасно импортироваться новым интерпретатором Python, не вызывая непреднамеренных побочных эффектов (таких как запуск нового процесса).
и
Вместо этого необходимо защитить «точку входа» программы, используя if __name__ == '__main__'
Итак, измените последнюю часть вашего основного модуля следующим образом:
from multiprocessing import freeze_support
def kick_off_tests(self):
'''Method to do Multi process execution'''
with concurrent.futures.ProcessPoolExecutor(max_workers=int(self.exec_config_dict.get('Parallel'))) as executor:
for test in self.current_test_set:
executor.submit(TestRunner().runner,test)
if __name__ == '__main__':
freeze_support()
initiator = Initiator()
initiator.get_run_info()
initiator.set_first_execution_order()
initiator.kick_off_tests()
while len(initiator.test_list) > 0:
initiator.set_subsequent_execution_order()
try:
initiator.kick_off_tests()
except BaseException as exception:
print(exception)