360 Secure SkillHub
360 安全技能中心

JUnit Failure Fingerprint

核心功能:扫描JUnit XML文件,提取失败/错误用例,归一化ID、行号等可变标识,生成稳定指纹并聚类分组。典型场景:CI流水线测试失败排查,减少重复噪声,聚焦根因。支持配置JUnit路径、输出格式(文本/JSON)等参数;输出为文本摘要或结构化JSON,可设置发现失败时非零退出,适配CI自动化需求。

daniellummis
daniellummis
热度 52.26
最近更新 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