У меня есть сценарий, который выполняет различные действия и получает доступ к параметрам, используя sys.argv, но когда сценарий попадает в часть кода unittest, он говорит, что для этого нет модуля. Сценарий, который у меня есть:
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
, но все еще устает читать дополнительные параметры.