【发布时间】:2011-08-22 09:27:11
【问题描述】:
我正在尝试向 Python unittest 提供命令行参数并面临一些问题。
我在互联网上搜索并找到了一种提供参数的方法
unittest.main(argv=[myArg])
问题是这对单个命令行参数有效,但对多个参数失败。
unittest.main(argv=[myArg1, myArg2, myArg3])
以上调用失败并出现以下错误:
File "/opt/python2.6.6/lib/python2.6/unittest.py", line 816, in __init__
self.parseArgs(argv)
File "/opt/python2.6.6/lib/python2.6/unittest.py", line 843, in parseArgs
self.createTests()
File "/opt/python2.6.6/lib/python2.6/unittest.py", line 849, in createTests
self.module)
File "/opt/python2.6.6/lib/python2.6/unittest.py", line 613, in
loadTestsFromNames suites = [self.loadTestsFromName(name, module)
for name in names]
File "/opt/python2.6.6/lib/python2.6/unittest.py", line 584, in
loadTestsFromName parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'admin'
对此进行深入研究,发现 Python unittest 将使用 argv 发送的所有内容视为要运行的测试用例。
如果还有一种方法可以为我的单元测试用例提供多个论点,请告诉我。我想覆盖一些硬编码值,如 IP 地址、测试用例标签等,并从主测试脚本中运行这个测试脚本。
提前致谢。
【问题讨论】:
标签: python unit-testing command-line-arguments