feat(tester): support isolated full regression workflow
This commit is contained in:
@@ -254,6 +254,7 @@ def propagate_results(
|
||||
skipped: Mapping[str, str] | None = None,
|
||||
continue_on_fail: bool = False,
|
||||
policies: Mapping[str, str] | None = None,
|
||||
blocked_by: Mapping[str, Iterable[str]] | None = None,
|
||||
) -> list[dict[str, str]]:
|
||||
"""Build ordered result rows and mark cases after a blocking failure not-run.
|
||||
|
||||
@@ -263,15 +264,21 @@ def propagate_results(
|
||||
"""
|
||||
skipped = skipped or {}
|
||||
policies = policies or {}
|
||||
blocked_by = blocked_by or {}
|
||||
rows: list[dict[str, str]] = []
|
||||
blocked = False
|
||||
blocking_case = ""
|
||||
for raw_id in case_ids:
|
||||
case_id = str(raw_id)
|
||||
if case_id in skipped:
|
||||
rows.append({"id": case_id, "result": "skipped", "notes": skipped[case_id]})
|
||||
continue
|
||||
if blocked:
|
||||
rows.append({"id": case_id, "result": "not-run", "notes": "前置用例失败,未轮到执行"})
|
||||
if blocking_case:
|
||||
rows.append({
|
||||
"id": case_id,
|
||||
"result": "not-run",
|
||||
"notes": "前置用例失败,未轮到执行",
|
||||
"blocked_by": ",".join(blocked_by.get(case_id) or (blocking_case,)),
|
||||
})
|
||||
continue
|
||||
result = observed.get(case_id, "not-run")
|
||||
if result not in RESULTS:
|
||||
@@ -279,5 +286,5 @@ def propagate_results(
|
||||
rows.append({"id": case_id, "result": result})
|
||||
policy = policies.get(case_id)
|
||||
if result in ("fail", "environment-fail") and not (continue_on_fail or policy == "continue"):
|
||||
blocked = True
|
||||
blocking_case = case_id
|
||||
return rows
|
||||
|
||||
Reference in New Issue
Block a user