コード例 #1
0
ファイル: make_test.py プロジェクト: stafenW/httprunner
 def test_make_testcase_folder(self):
     path = ["examples/postman_echo/request_methods/"]
     testcase_python_list = main_make(path)
     self.assertIn(
         "examples/postman_echo/request_methods/request_with_functions_test.py",
         testcase_python_list,
     )
コード例 #2
0
def main_run(extra_args):
    tests_path_list = []
    extra_args_new = []
    for item in extra_args:
        if not os.path.exists(item):
            # item is not file/folder path
            extra_args_new.append(item)
        else:
            # item is file/folder path
            tests_path_list.append(item)

    if len(tests_path_list) == 0:
        # has not specified any testcase path
        logger.error(f"No valid testcase path in cli arguments: {extra_args}")
        sys.exit(1)

    testcase_path_list = main_make(tests_path_list)
    if not testcase_path_list:
        logger.error("No valid testcases found, exit 1.")
        sys.exit(1)

    extra_args_new.extend(testcase_path_list)
    if "-s" not in extra_args_new:
        extra_args_new.insert(0, "-s")

    pytest.main(extra_args_new)
コード例 #3
0
ファイル: make_test.py プロジェクト: stafenW/httprunner
 def test_make_testcase(self):
     path = [
         "examples/postman_echo/request_methods/request_with_variables.yml"
     ]
     testcase_python_list = main_make(path)
     self.assertEqual(
         testcase_python_list[0],
         "examples/postman_echo/request_methods/request_with_variables_test.py",
     )
コード例 #4
0
ファイル: make_test.py プロジェクト: stafenW/httprunner
 def test_make_testsuite(self):
     path = ["examples/postman_echo/request_methods/demo_testsuite.yml"]
     testcase_python_list = main_make(path)
     self.assertEqual(len(testcase_python_list), 2)
     self.assertIn(
         "examples/postman_echo/request_methods/demo_testsuite_yml/request_with_functions_test.py",
         testcase_python_list,
     )
     self.assertIn(
         "examples/postman_echo/request_methods/demo_testsuite_yml/request_with_testcase_reference_test.py",
         testcase_python_list,
     )
コード例 #5
0
ファイル: cli.py プロジェクト: the-wolf-king/httprunner
def main_run(extra_args):
    tests_path_list = []
    for index, item in enumerate(extra_args):
        if not os.path.exists(item):
            # item is not file/folder path
            continue
        elif os.path.isfile(item):
            # replace YAML/JSON file path with generated python file
            extra_args[index] = convert_testcase_path(item)

        tests_path_list.append(item)

    if len(tests_path_list) == 0:
        # has not specified any testcase path
        raise exceptions.ParamsError("Missed testcase path")

    main_make(tests_path_list)

    if "-s" not in extra_args:
        extra_args.insert(0, "-s")
    pytest.main(extra_args)
コード例 #6
0
def main():
    """ API test: parse command line options and run commands.
    """
    parser = argparse.ArgumentParser(description=__description__)
    parser.add_argument("-V",
                        "--version",
                        dest="version",
                        action="store_true",
                        help="show version")

    subparsers = parser.add_subparsers(help="sub-command help")
    sub_parser_run = init_parser_run(subparsers)
    sub_parser_scaffold = init_parser_scaffold(subparsers)
    sub_parser_har2case = init_har2case_parser(subparsers)
    sub_parser_make = init_make_parser(subparsers)

    if len(sys.argv) == 1:
        # httprunner
        parser.print_help()
        sys.exit(0)
    elif len(sys.argv) == 2:
        # print help for sub-commands
        if sys.argv[1] in ["-V", "--version"]:
            # httprunner -V
            print(f"{__version__}")
        elif sys.argv[1] in ["-h", "--help"]:
            # httprunner -h
            parser.print_help()
        elif sys.argv[1] == "startproject":
            # httprunner startproject
            sub_parser_scaffold.print_help()
        elif sys.argv[1] == "har2case":
            # httprunner har2case
            sub_parser_har2case.print_help()
        elif sys.argv[1] == "run":
            # httprunner run
            pytest.main(["-h"])
        elif sys.argv[1] == "make":
            # httprunner make
            sub_parser_make.print_help()
        sys.exit(0)
    elif (len(sys.argv) == 3 and sys.argv[1] == "run"
          and sys.argv[2] in ["-h", "--help"]):
        # httprunner run -h
        pytest.main(["-h"])
        sys.exit(0)

    extra_args = []
    if len(sys.argv) >= 2 and sys.argv[1] in ["run", "locusts"]:
        args, extra_args = parser.parse_known_args()
    else:
        args = parser.parse_args()

    if args.version:
        print(f"{__version__}")
        sys.exit(0)

    if sys.argv[1] == "run":
        main_run(extra_args)
    elif sys.argv[1] == "startproject":
        main_scaffold(args)
    elif sys.argv[1] == "har2case":
        main_har2case(args)
    elif sys.argv[1] == "make":
        main_make(args.testcase_path)