我有一个脚本,它使用 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')
这仍然行不通。
任何人都可以帮忙。
谢谢
我尝试了这个 hack,但它仍然尝试读取sys.argv
.
project = sys.argv[4:]
sys.argv = sys.argv[0:4]
我已经尝试过了,argv
但它仍然无法读取额外的参数。