bugfix: once task_suite been executed, task in task_suite will be None, and can not call print_output function

This commit is contained in:
httprunner
2017-09-20 14:57:03 +08:00
parent 960213a7bd
commit 5ee65776a0
2 changed files with 15 additions and 11 deletions
+3 -3
View File
@@ -5,7 +5,7 @@ import sys
from collections import OrderedDict from collections import OrderedDict
from ate import __version__ from ate import __version__
from ate.task import create_task from ate.task import TaskSuite
import PyUnitReport import PyUnitReport
@@ -58,7 +58,7 @@ def main_ate():
for testset_path in set(args.testset_paths): for testset_path in set(args.testset_paths):
testset_path = testset_path.rstrip('/') testset_path = testset_path.rstrip('/')
task_suite = create_task(testset_path) task_suite = TaskSuite(testset_path)
output_folder_name = os.path.basename(os.path.splitext(testset_path)[0]) output_folder_name = os.path.basename(os.path.splitext(testset_path)[0])
kwargs = { kwargs = {
@@ -78,7 +78,7 @@ def main_ate():
if len(result.successes) != result.testsRun: if len(result.successes) != result.testsRun:
subject = "FAILED" subject = "FAILED"
for task in task_suite: for task in task_suite.tasks:
task.print_output() task.print_output()
flag_code = 0 if subject == "SUCCESS" else 1 flag_code = 0 if subject == "SUCCESS" else 1
+12 -8
View File
@@ -42,16 +42,20 @@ class ApiTestSuite(unittest.TestSuite):
output_variables_list = self.config_dict.get("output", []) output_variables_list = self.config_dict.get("output", [])
self.test_runner.generate_output(output_variables_list) self.test_runner.generate_output(output_variables_list)
class TaskSuite(unittest.TestSuite):
def create_task(testcase_path):
""" create test task suite with specified testcase path. """ create test task suite with specified testcase path.
each task suite may include one or several test suite. each task suite may include one or several test suite.
""" """
task_suite = unittest.TestSuite() def __init__(self, testcase_path):
testsets = testcase.load_testcases_by_path(testcase_path) super(TaskSuite, self).__init__()
self.suite_list = []
testsets = testcase.load_testcases_by_path(testcase_path)
for testset in testsets: for testset in testsets:
suite = ApiTestSuite(testset) suite = ApiTestSuite(testset)
task_suite.addTest(suite) self.addTest(suite)
self.suite_list.append(suite)
return task_suite @property
def tasks(self):
return self.suite_list