在python中测试argparser时无法识别的参数

时间:2021-08-01 19:55:06

标签: python pytest

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

0 个答案:

没有答案