我有一个关于argparse的问题。
这是我的代码的一部分:
(...)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--gfirst', dest="a", type=int, required=True)
args = parser.parse_args()
print args.a #Testing
print args.a #Testing
if __name__ == '__main__':
main()
print "3"
unittest.main(verbosity=2)
print "4"
(...)
我试图将“a”设置为必需值以执行测试用例,因为我将来需要这个值。但是...
$ python regular_test.py --gfirst 2
2
2
3
option --gfirst not recognized
Usage: regular-test.py [options] [test] [...]
Options:
-h, --help Show this message
-v, --verbose Verbose output
-q, --quiet Minimal output
-f, --failfast Stop on first failure
-c, --catch Catch control-C and display results
-b, --buffer Buffer stdout and stderr during test runs
正如您所看到的,程序接受参数并将其打印出来,但是测试用例本身没有执行。 我插入了一些打印输出以显示正在执行什么以及未执行什么。
我做错了什么? 先行致谢。
附:我正在使用Python 2.7.3
附2:(在将argparse添加到程序之前)测试正常运行。
unittest.main
是什么?它显然定义了一个不同的参数解析器,而不是regular_test.main
中的那个。 - chepnerunittest.main
作为自己的解析器,也接受命令行参数,只是不接受“--gfirst”。 - chepner