diff --git a/ate/cli.py b/ate/cli.py new file mode 100644 index 00000000..d6f8f629 --- /dev/null +++ b/ate/cli.py @@ -0,0 +1,37 @@ +import os +import argparse +import logging + +import HtmlTestRunner + +from ate.task import create_task + +def main(): + """ parse command line options and run commands. + """ + parser = argparse.ArgumentParser( + description='Api Test Engine.') + parser.add_argument( + '--testcase-path', default='testcases', + help="testcase file path") + parser.add_argument( + '--log-level', default='INFO', + help="Specify logging level, default is INFO.") + parser.add_argument( + '--report-name', + help="Specify report name, default is generated time.") + + args = parser.parse_args() + + 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) + + output_folder_name = os.path.basename(os.path.splitext(testcase_path)[0]) + kwargs = { + "output": output_folder_name, + "report_name": args.report_name + } + HtmlTestRunner.HTMLTestRunner(**kwargs).run(task_suite) diff --git a/ate/main.py b/ate/task.py similarity index 60% rename from ate/main.py rename to ate/task.py index 7b19cea3..83dfc6f8 100644 --- a/ate/main.py +++ b/ate/task.py @@ -1,10 +1,5 @@ -import os -import argparse -import logging import unittest -import HtmlTestRunner - from ate import runner, utils @@ -56,33 +51,3 @@ def create_task(testcase_path): task_suite.addTest(suite) return task_suite - -def main(): - """ parse command line options and run commands. - """ - parser = argparse.ArgumentParser( - description='Api Test Engine.') - parser.add_argument( - '--testcase-path', default='testcases', - help="testcase file path") - parser.add_argument( - '--log-level', default='INFO', - help="Specify logging level, default is INFO.") - parser.add_argument( - '--report-name', - help="Specify report name, default is generated time.") - - args = parser.parse_args() - - 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) - - output_folder_name = os.path.basename(os.path.splitext(testcase_path)[0]) - kwargs = { - "output": output_folder_name, - "report_name": args.report_name - } - HtmlTestRunner.HTMLTestRunner(**kwargs).run(task_suite) diff --git a/main.py b/main.py index 6bb44538..18fdc38c 100644 --- a/main.py +++ b/main.py @@ -1,2 +1,2 @@ -from ate.main import main +from ate.cli import main main() \ No newline at end of file diff --git a/test/test_main.py b/test/test_task.py similarity index 75% rename from test/test_main.py rename to test/test_task.py index 8e335a71..8e2e7b0e 100644 --- a/test/test_main.py +++ b/test/test_task.py @@ -2,7 +2,7 @@ import os import random import requests from test.base import ApiServerUnittest -from ate import main, utils +from ate import task, utils class TestMain(ApiServerUnittest): @@ -16,15 +16,15 @@ class TestMain(ApiServerUnittest): def test_create_suite(self): testcase_file_path = os.path.join(os.getcwd(), 'test/data/simple_demo_no_auth.yml') testsets = utils.load_testcases_by_path(testcase_file_path) - suite = main.create_suite(testsets[0]) + suite = task.create_suite(testsets[0]) self.assertEqual(suite.countTestCases(), 2) for testcase in suite: - self.assertIsInstance(testcase, main.ApiTestCase) + self.assertIsInstance(testcase, task.ApiTestCase) def test_create_task(self): testcase_file_path = os.path.join(os.getcwd(), 'test/data/simple_demo_no_auth.yml') - task_suite = main.create_task(testcase_file_path) + task_suite = task.create_task(testcase_file_path) self.assertEqual(task_suite.countTestCases(), 2) for suite in task_suite: for testcase in suite: - self.assertIsInstance(testcase, main.ApiTestCase) + self.assertIsInstance(testcase, task.ApiTestCase)