如何将可选的控制台参数与位置控制台参数相关联?

时间:2019-08-02 15:49:13

标签: python-3.x console

我正在使用python 3.x构建从命令行运行的测试应用程序。我有下面的代码。我想做的是在cmd行中输入“ test1 -valid test2 -invalid”,以运行test1的有效测试和test2的无效测试。

我正在使用import argparse

参数字典

'test1': {
            'argument': "test1",
            'description': "Runs tests against some form.",
            'options': {
                'valid': {
                    'option1': "-valid",
                    'option2': "--LVL1",
                    'action': "store_true",
                    'description': "Runs valid tests for the given argument",
                },
                'invalid': {
                    'option1': "-invalid",
                    'option2': "--LVL2",
                    'action': "store_true",
                    'description': "Runs invalid tests for the given argument",
                },
                'missing': {
                    'option1': "-missing",
                    'option2': "--LVL3",
                    'action': "store_true",
                    'description': "Runs missing tests for the given argument",
                },
            },
        },
        'test2': {
            'argument': "test2",
            'description': "Runs tests against another form.",
            'options': {
                'valid': {
                    'option1': "-valid",
                    'option2': "--LVL1",
                    'action': "store_true",
                    'description': "Runs valid tests for the given argument",
                },
                'invalid': {
                    'option1': "-invalid",
                    'option2': "--LVL2",
                    'action': "store_true",
                    'description': "Runs invalid tests for the given argument",
                },
                'missing': {
                    'option1': "-missing",
                    'option2': "--LVL3",
                    'action': "store_true",
                    'description': "Runs missing tests for the given argument",
                },
            },
        },

我如何向解析器添加参数

    def add_arguments(self):
    arguments = self.build_arguments()
    for argument in arguments:
        argument_data = arguments[argument]
        self.parser.add_argument(argument_data['argument'], help=argument_data['description'])
        for option in argument_data['options']:
            option_data = argument_data['options'][option]
            self.parser.add_argument(option_data['option1'], option_data['option2'], action=option_data['action'],
                                     help=option_data['description'])

当前我必须做test1-valid(作为一种选择)test2-invalid(也是一种选择)

我想尝试执行test1 -valid test2 -invalid

有可能吗?

0 个答案:

没有答案