360 Secure SkillHub
360 安全技能中心

JUnit Failure Fingerprint

扫描一个或多个 JUnit XML 报告,提取失败/错误用例并归一化易变 token(ID、数字、行号、地址、UUID),生成稳定指纹哈希并分组输出 text 或 json 分诊结果,可选在发现失败时返回非零退出码。

daniellummis
daniellummis
热度 52.12
最近更新 2026-05-11 17:29:02
分类:开发依赖:代码执行 / 读写文件应用场景:调试排错 / DevOps / 数据处理 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add junit-failure-fingerprint
Metadata
name
junit-failure-fingerprint
description
Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs.
version
1.0.0
metadata
{"openclaw":{"requires":{"bins":["bash","python3"]}}}

JUnit Failure Fingerprint

Use this skill to compress noisy JUnit failures/errors into repeatable fingerprints.

What this skill does

  • Scans one or more JUnit XML files
  • Extracts only failing/error test cases
  • Normalizes volatile tokens (IDs, numbers, line numbers, addresses, UUIDs)
  • Generates stable fingerprint hashes for similar root-cause failures
  • Emits grouped triage output (text or json)

Inputs

Optional:

  • JUNIT_GLOB (default: test-results/**/*.xml)
  • TOP_N (default: 20)
  • OUTPUT_FORMAT (text or json, default: text)
  • STACK_LINES (default: 3) — number of normalized stack lines to include in fingerprint seed
  • FAIL_ON_FAILURES (0 or 1, default: 0) — exit non-zero when any failures/errors are found

Run

Text report:

JUNIT_GLOB='artifacts/junit/**/*.xml' \
TOP_N=15 \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

JSON output for CI annotation/upload:

JUNIT_GLOB='artifacts/junit/**/*.xml' \
OUTPUT_FORMAT=json \
FAIL_ON_FAILURES=1 \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

Run with bundled fixtures:

JUNIT_GLOB='skills/junit-failure-fingerprint/fixtures/*.xml' \
bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh

Output contract

  • Exit 0 by default (reporting mode)
  • Exit 1 if FAIL_ON_FAILURES=1 and at least one failure/error is found
  • In text mode, prints summary + top fingerprints
  • In json mode, prints machine-readable groups and per-case detail