feat: add shared test acceptance and release 1.5.0
This commit is contained in:
1 parent
3fbcdfefea
commit
ec2c1265d3
35 files changed
+826
-51
No files matched your search
@@ -780,7 +780,9 @@ def test_failed_report_exposes_logged_reason_and_formats_chinese_markdown(isolat
|
||||
)
|
||||
report = reports.session_report(job["session_id"])
|
||||
assert "连续 3 次" in report["error"]
|
||||
assert report["verdict"] == "未验证(任务异常终止)"
|
||||
assert report["verdict"] == "测试阻塞"
|
||||
assert report["test_result"]["status"] == "blocked"
|
||||
assert "连续 3 次" in report["test_result"]["reason"]
|
||||
assert "abc123secret" not in reports.failure_reason(
|
||||
folder, "failed", "认证失败 OPENAI_API_KEY=abc123secret Authorization: Bearer abc123secret"
|
||||
)
|
||||
@@ -796,7 +798,10 @@ def test_failed_report_exposes_logged_reason_and_formats_chinese_markdown(isolat
|
||||
cell.text == "分类" for table in doc.tables for row in table.rows for cell in row.cells
|
||||
)
|
||||
wb = load_workbook(next(path for path in paths if path.suffix == ".xlsx"))
|
||||
assert "连续 3 次" in wb["任务结果"]["B15"].value
|
||||
assert any(
|
||||
row[0].value == "异常原因" and "连续 3 次" in row[1].value
|
||||
for row in wb["任务结果"].iter_rows()
|
||||
)
|
||||
assert wb["结论"]["B2"].value == "结果"
|
||||
assert wb["结果表1"]["A2"].value == "系统"
|
||||
assert wb["执行证据"]["A1"].font.name == "微软雅黑"
|
||||
@@ -810,6 +815,51 @@ def test_failed_report_exposes_logged_reason_and_formats_chinese_markdown(isolat
|
||||
]
|
||||
|
||||
|
||||
def test_prompt_based_verdict_is_consistent_in_history_batch_and_reports(
|
||||
client, isolated, monkeypatch
|
||||
):
|
||||
from artemis.runtime import case_result
|
||||
|
||||
monkeypatch.setattr(case_result, "TRACES_PATH", reports.TRACES_PATH)
|
||||
batch = service.create_batch(payload())
|
||||
job = isolated.jobs(batch["id"])[0]
|
||||
isolated.save_job(
|
||||
{**job, "status": "completed", "started_at": time.time() - 50, "ended_at": time.time()}
|
||||
)
|
||||
result = {
|
||||
"status": "failed",
|
||||
"reason": "预期出现成功提示,实际显示错误",
|
||||
"evidence": ["步骤 3 点击后截图显示错误提示"],
|
||||
}
|
||||
folder = reports.TRACES_PATH / job["session_id"]
|
||||
folder.mkdir(parents=True)
|
||||
(folder / "run_outcome.json").write_text(
|
||||
json.dumps(
|
||||
{"task_status": "completed", "tests": {}, "test_result": result}, ensure_ascii=False
|
||||
),
|
||||
encoding="utf-8",
|
||||
)
|
||||
history = client.get("/api/automation/history").json()["items"][0]
|
||||
batch_job = client.get(f"/api/automation/batches/{batch['id']}").json()["jobs"][0]
|
||||
report = client.get(f"/api/automation/reports/{job['session_id']}").json()
|
||||
for item in (history, batch_job, report):
|
||||
assert item["status"] == "completed"
|
||||
assert item["test_result"] == result
|
||||
assert report["verdict"] == "测试不通过"
|
||||
paths = reports.export_session(job["session_id"])
|
||||
doc = Document(next(path for path in paths if path.suffix == ".docx"))
|
||||
doc_text = "\n".join(
|
||||
cell.text for table in doc.tables for row in table.rows for cell in row.cells
|
||||
)
|
||||
doc_text += "\n" + "\n".join(paragraph.text for paragraph in doc.paragraphs)
|
||||
assert result["reason"] in doc_text
|
||||
assert result["evidence"][0] in doc_text
|
||||
wb = load_workbook(next(path for path in paths if path.suffix == ".xlsx"))
|
||||
values = [cell.value for row in wb["任务结果"].iter_rows() for cell in row]
|
||||
assert "测试不通过" in values
|
||||
assert result["reason"] in values
|
||||
|
||||
|
||||
def test_task_material_zip_contains_ordered_evidence_and_reports(
|
||||
client, isolated, tmp_path, monkeypatch
|
||||
):
|
||||
|
||||
Reference in new issue
Block a user