From 2179092ea76d0fbb5ab120a076db2b53fe4c0fe9 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Wed, 19 Jul 2017 23:29:29 +0800 Subject: [PATCH] change method to specify testset path --- README.md | 48 ++++++++++++++++++++++++++++++++++++++++++++---- ate/cli.py | 28 ++++++++++++++++++---------- 2 files changed, 62 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index a91de371..c92bec7d 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,34 @@ $ pip install git+https://github.com/debugtalk/ApiTestEngine.git#egg=ApiTestEngine ``` +执行`ate -V`,检测安装是否成功。 + +```text +$ ate -V +0.1.0 +``` + +执行`ate -h`,查看命令的帮助说明。 + +```text +$ ate -h +usage: ate [-h] [-V] [--log-level LOG_LEVEL] [--report-name REPORT_NAME] + [testset_paths [testset_paths ...]] + +Api Test Engine. + +positional arguments: + testset_paths testset file path + +optional arguments: + -h, --help show this help message and exit + -V, --version show version + --log-level LOG_LEVEL + Specify logging level, default is INFO. + --report-name REPORT_NAME + Specify report name, default is generated time. +``` + ## 编写测试用例 推荐采用`YAML`格式编写测试用例。 @@ -82,12 +110,24 @@ $ pip install git+https://github.com/debugtalk/ApiTestEngine.git#egg=ApiTestEngi ## 运行测试用例 -`ApiTestEngine`可指定运行特定的测试用例文件,或运行指定目录下的所有测试用例。 +`ApiTestEngine`可指定运行特定的测试用例集文件,或运行指定目录下的所有测试用例集文件。 -```bash -$ ate --testcase-path filepath/testcase.yml +执行单个测试用例集: -$ ate --testcase-path testcases_folder_path +```text +$ ate filepath/testcase.yml +``` + +执行多个测试用例集: + +```text +$ ate filepath1/testcase1.yml filepath2/testcase2.yml +``` + +执行指定目录下的所有测试用例集: + +```text +$ ate testcases_folder_path ``` ## Supported Python Versions diff --git a/ate/cli.py b/ate/cli.py index 81a6d7ab..aafed92f 100644 --- a/ate/cli.py +++ b/ate/cli.py @@ -16,8 +16,8 @@ def main(): '-V', '--version', dest='version', action='store_true', help="show version") parser.add_argument( - '--testcase-path', default='testcases', - help="testcase file path") + 'testset_paths', nargs='*', + help="testset file path") parser.add_argument( '--log-level', default='INFO', help="Specify logging level, default is INFO.") @@ -34,12 +34,20 @@ def main(): log_level = getattr(logging, args.log_level.upper()) logging.basicConfig(level=log_level) - testcase_path = args.testcase_path.rstrip('/') - task_suite = create_task(testcase_path) + report_name = args.report_name + if report_name and len(args.testset_paths) > 1: + report_name = None + logging.warning("More than one testset paths specified, \ + report name is ignored, use generated time instead.") - output_folder_name = os.path.basename(os.path.splitext(testcase_path)[0]) - kwargs = { - "output": output_folder_name, - "report_name": args.report_name - } - PyUnitReport.HTMLTestRunner(**kwargs).run(task_suite) + for testset_path in args.testset_paths: + + testset_path = testset_path.strip('/') + task_suite = create_task(testset_path) + + output_folder_name = os.path.basename(os.path.splitext(testset_path)[0]) + kwargs = { + "output": output_folder_name, + "report_name": report_name + } + PyUnitReport.HTMLTestRunner(**kwargs).run(task_suite)