CI: test-apps introduction

Introducing feature of adding arbitrary projects which could be build or
executed in the CI for the only purpose as testing

Closes IDF-641
This commit is contained in:
Ivan Grokhotkov
2019-10-20 20:55:11 +02:00
committed by bot
parent 9d333424a1
commit e63764b468
17 changed files with 312 additions and 7 deletions

View File

@@ -148,6 +148,7 @@ class AssignTest(object):
def __init__(self, test_case_path, ci_config_file, case_group=Group):
self.test_case_path = test_case_path
self.test_case_file_pattern = None
self.test_cases = []
self.jobs = self._parse_gitlab_ci_config(ci_config_file)
self.case_group = case_group
@@ -177,7 +178,7 @@ class AssignTest(object):
job_list.sort(key=lambda x: x["name"])
return job_list
def _search_cases(self, test_case_path, case_filter=None):
def _search_cases(self, test_case_path, case_filter=None, test_case_file_pattern=None):
"""
:param test_case_path: path contains test case folder
:param case_filter: filter for test cases. the filter to use is default filter updated with case_filter param.
@@ -186,7 +187,7 @@ class AssignTest(object):
_case_filter = self.DEFAULT_FILTER.copy()
if case_filter:
_case_filter.update(case_filter)
test_methods = SearchCases.Search.search_test_cases(test_case_path)
test_methods = SearchCases.Search.search_test_cases(test_case_path, test_case_file_pattern)
return CaseConfig.filter_test_cases(test_methods, _case_filter)
def _group_cases(self):
@@ -276,7 +277,7 @@ class AssignTest(object):
failed_to_assign = []
assigned_groups = []
case_filter = self._apply_bot_filter()
self.test_cases = self._search_cases(self.test_case_path, case_filter)
self.test_cases = self._search_cases(self.test_case_path, case_filter, self.test_case_file_pattern)
self._apply_bot_test_count()
test_groups = self._group_cases()

View File

@@ -93,14 +93,14 @@ class Search(object):
return replicated_cases
@classmethod
def search_test_cases(cls, test_case):
def search_test_cases(cls, test_case, test_case_file_pattern=None):
"""
search all test cases from a folder or file, and then do case replicate.
:param test_case: test case file(s) path
:return: a list of replicated test methods
"""
test_case_files = cls._search_test_case_files(test_case, cls.TEST_CASE_FILE_PATTERN)
test_case_files = cls._search_test_case_files(test_case, test_case_file_pattern or cls.TEST_CASE_FILE_PATTERN)
test_cases = []
for test_case_file in test_case_files:
test_cases += cls._search_cases_from_file(test_case_file)