TLDR: можно ли пометить указанные c наборы как некритические?
Я использую перезагрузку для объединения нескольких идентичных тестов, т.е. одинаковых тестов с разными результатами.
Я хочу создать новый объединенный журнал, который показывает PASS, если последний был успешным. Чтобы исправить это, я сделал похожую функцию TestStatusChecker, как в:
Robot Framework: Как объединить старые / новые состояния с помощью rebot --merge и сохранить только один?
См код ниже. Это позволяет установить все тесты как некритические, кроме последнего комплекта. Это работает, однако старые неисправные журналы отображаются зеленым цветом, что может привести к ошибкам.
Я бы хотел, чтобы набор сказал «не удалось» (красный), но будьте некритичны, чтобы не потерпеть неудачу в новом объединенном журнале. Это возможно? Если нет, есть ли другие альтернативы?
TestStatusChecker.py
from robot.api import SuiteVisitor
class TestStatusChecker(SuiteVisitor):
def __init__(self, *args):
pass
def visit_suite(self, suite):
# Map timestamps to suite status.
suites_status = {}
for sutie in suite.suites:
suites_status[sutie.starttime] = sutie.status
# Get the most recent suite timestamp.
most_recent_log = 0
for element in suites_status:
if most_recent_log == 0 or most_recent_log < element:
most_recent_log = element
# Set all suites, except for the most recent one, to non critical.
for sutie in suite.suites:
if (sutie.starttime == most_recent_log):
for test in sutie.tests:
test.tags = "critical" # This makes normally non critical tests critical
else:
# sutie.tags = "suite-non-critical" # Here I would like to set the suite as non critical.
for test in sutie.tests:
test.tags = "suite-non-critical"