基于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
。