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:
debugtalk
2017-09-20 14:57:03 +08:00
parent 28a48740c7
commit 45ede0d5ad
2 changed files with 15 additions and 11 deletions

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

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