openclaw 网盘下载
OpenClaw

技能详情(站内镜像,无评论)

首页 > 技能库 > JUnit Failure Fingerprint

Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs.

开发与 DevOps

作者:Daniel Lummis @daniellummis

许可证:MIT-0

MIT-0 ·免费使用、修改和重新分发。无需归因。

版本:v1.0.0

统计:⭐ 0 · 177 · 0 current installs · 0 all-time installs

0

安装量(当前) 0

🛡 VirusTotal :良性 · OpenClaw :良性

Package:daniellummis/junit-failure-fingerprint

安全扫描(ClawHub)

  • VirusTotal :良性
  • OpenClaw :良性

OpenClaw 评估

The skill is internally consistent: it only parses local JUnit XML files, normalizes noisy tokens, and emits clustered fingerprints; it does not request credentials, external network access, or install software.

目的

Name and description (cluster JUnit failures) match the included script and SKILL.md. Required binaries (bash, python3) are appropriate and sufficient for the stated task; there are no unrelated credentials or config paths.

说明范围

Runtime instructions and the script limit actions to scanning JUnit XML files (via a glob), normalizing text, hashing seeds, and printing/grouping results. Caution: JUNIT_GLOB is user-controllable — if set to a broad or sensitive filesystem path, the script will read whatever files match the glob. By default the glob targets test-results/**/*.xml and the bundled fixtures example is safe.

安装机制

No install spec; this is instruction-only plus a bundled script. Nothing is downloaded or written to disk by an installer during skill installation.

证书

The skill requests no environment variables or credentials by default. It does accept optional environment inputs (JUNIT_GLOB, TOP_N, OUTPUT_FORMAT, STACK_LINES, FAIL_ON_FAILURES) that are reasonable for its purpose.

持久

Skill is not always-enabled and does not request elevated persistence or modify other skills or system settings. It only runs when invoked and doesn't persist state or credentials.

综合结论

This skill appears safe and does exactly what it claims: parse JUnit XMLs and produce fingerprints. Before using in CI, verify your JUNIT_GLOB value so it only matches test result files (not / or other sensitive locations). You can test locally with the provided fixtures. If you enable FAIL_ON_FAILURES, be aware it will return a non-zero exit code when failures are found, which can fail CI jobs as intended.

安装(复制给龙虾 AI)

将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。

请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「JUnit Failure Fingerprint」。简介:Cluster JUnit failures into stable fingerprints so CI triage focuses on root ca…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/daniellummis/junit-failure-fingerprint/SKILL.md
(来源:yingzhi8.cn 技能库)

SKILL.md

打开原始 SKILL.md(GitHub raw)

---
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:

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

JSON output for CI annotation/upload:

```bash
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:

```bash
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