У меня есть script, который выполняет различные действия и доступ к паразитам, использующим sys.argv, но когда script попадает в unittest часть кода, он говорит, что для этого нет модуля. script, который у меня есть:
class MyScript():
def __init__(self):
self.value = sys.argv[1]
def hello(self):
print self.value
def suite(self):
modules_to_test = ('external_sanity_onvif', 'starttest')
alltests = unittest.TestSuite()
for module in map(__import__, modules_to_test):
alltests.addTest(unittest.findTestCases(module))
return alltests
if __name__ == '__main__':
Run = MyScript()
Run.hello()
log_file = 'log_file.txt'
test_file = open(log_file, "w")
runner = unittest.TextTestRunner(test_file)
unittest.main(defaultTest='Run.suite', testRunner=runner)
Скажем, я введу ./script.py Hello
в командной строке. Ошибка, которую я получаю:
AttributeError: 'module' object has no attribute 'Hello'
Если я удалю модуль unittest, он будет работать. Также, если я удалю журнал testrunner и оставьте его по адресу:
unittest.main(defaultTest='Run.suite')
Это все еще не работает.
Может кто-нибудь помочь.
Спасибо
Я пробовал этот хак, но он все еще пытается прочитать sys.argv
.
project = sys.argv[4:]
sys.argv = sys.argv[0:4]
Я пробовал это только с argv
, но он по-прежнему устает читать дополнительные параметры.