基于Alex的答案,使用
argparse以下命令实际上非常容易:
if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--input', default='My Input') parser.add_argument('filename', default='some_file.txt') parser.add_argument('unittest_args', nargs='*') args = parser.parse_args() # TODO: Go do something with args.input and args.filename # Now set the sys.argv to the unittest_args (leaving sys.argv[0] alone) sys.argv[1:] = args.unittest_args unittest.main()我还没有测试可以传递给unittest的所有标志,以查看它们是否起作用,但是在中传递测试名称确实可以起作用,例如:
python test.py --input=foo data.txt MyTest
使用
foo和运行MyTest
data.txt。



