argparser 代码是
def arg_parser(args=None):
if not args:
args = sys.argv[1:]
parser = argparse.ArgumentParser()
parser.add_argument('--xy', type=str, required=True)
parser.add_argument('--region', type=str, required=True)
parser.add_argument('--path1', type=str, default='../path1')
parser.add_argument('--path2', type=str, default='../path2')
parser.add_argument('--path3', type=str, default='../path3')
return parser.parse_args(args)
pytest 测试是
def test_arg_parser(): // this one passes
x = arg_parser(['--xy', '133_164', '--region', 'abc'])
assert x.region == 'abc'
assert x.tile_xy == '133_164'
def test_main(): // this one fails
x = arg_parser(['--xy', '133_164,132_164',
'--region', 'nam',
'--path1', '/path1'
'--path2', '/path2',
'--path3', '/path3'])
第一个测试 test_arg_parser
通过,第二个 test_main
失败并出现错误
usage: pytest [-h] --xy XY --region REGION
[--path1 PATH1]
[--path2 PATH2] [--path3 PATH3]
pytest: error: unrecognized arguments: ./path2