2016-07-22 4 views
0

У меня есть файл Python, назовем его script1.py. Я пытаюсь написать единичный тест (используя unittest), называемый script1_test.py. script1 предназначен для вызова из командной строки и принятия ряда аргументов. Когда сценарий 1 запускается, он начинается с:Импорт скрипта Python, который требует системных аргументов в модульном тесте

if __name__ == "__main__" and len(sys.argv) == 6: 
    func1() 
else 
    print "Wrong number of arguments" 
    sys.exit(1) 

Я просто пытаюсь выполнить и протестировать функцию (здесь называется FUNC1) в script1 независимо от основного корпуса кода. Но когда я это делаю, я продолжаю атаковать sys.exit от основного во время фазы импорта. Как я могу запустить тест, не нажав эту ошибку?

ответ

1

Когда вы выполняете импорт своего сценария, __name__ не равен main, поэтому вы вызываете блок else. Вместо этого вы должны вложить свои блоки if:

if __name__ == "__main__": 
    if len(sys.argv) == 6: 
     func1() 
    else: 
     print "Wrong number of arguments" 
     sys.exit(1) 
Смежные вопросы