{"id":20543556,"url":"https://github.com/bavix/junit-reporter","last_synced_at":"2026-03-11T18:06:13.923Z","repository":{"id":57694789,"uuid":"435219133","full_name":"bavix/junit-reporter","owner":"bavix","description":"Lightweight Go CLI that aggregates and reports test timings from JUnit XML files — supports semantic-version grouping, per‑tick/median metrics, CSV/JSON export, and baseline generation/comparison.","archived":false,"fork":false,"pushed_at":"2025-11-28T22:09:47.000Z","size":160,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-30T23:32:15.811Z","etag":null,"topics":["benchmarking","go","junit","junit-xml","performance-testing","reporter","test-reporting"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bavix.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-05T16:27:08.000Z","updated_at":"2025-11-28T22:17:41.000Z","dependencies_parsed_at":"2023-12-14T21:24:46.196Z","dependency_job_id":"d1e4b631-cd0a-401b-9320-5b9aa41c65ce","html_url":"https://github.com/bavix/junit-reporter","commit_stats":{"total_commits":52,"total_committers":4,"mean_commits":13.0,"dds":"0.46153846153846156","last_synced_commit":"2613866fcff513c6fceda6d12e6025c616f69e0f"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"purl":"pkg:github/bavix/junit-reporter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bavix%2Fjunit-reporter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bavix%2Fjunit-reporter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bavix%2Fjunit-reporter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bavix%2Fjunit-reporter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bavix","download_url":"https://codeload.github.com/bavix/junit-reporter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bavix%2Fjunit-reporter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30229744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarking","go","junit","junit-xml","performance-testing","reporter","test-reporting"],"created_at":"2024-11-16T01:38:47.458Z","updated_at":"2026-03-07T20:32:22.647Z","avatar_url":"https://github.com/bavix.png","language":"Go","readme":"# junit-reporter\n\n## Install\n\n```bash\ngo install github.com/bavix/junit-reporter@latest\n```\n\n#### Alternative installation\n\n```bash\ncd /tmp\ngit clone https://github.com/bavix/junit-reporter.git\ncd junit-reporter\ngo install -ldflags \"-s -w\"\n```\n\n## Usage\n\n```bash\njunit-reporter\n```\n\n## CLI flags\n\nSupported flags:\n\n- `-ticks` : show per-tick times (averages) instead of total durations  \n- `-group` : group input files by semantic version pattern extracted from filenames  \n- `-major` : when used with `-group`, collapse to major.x (e.g. 7.x)  \n- `-median` : use median instead of average for tick mode  \n- `-rotate` : swap rows and columns (versions as rows)  \n- `-path` : specify input directory (default `./build`)  \n- `-output-format` : optional export format, `csv` or `json` (writes additional file)  \n- `-output-file` : optional path to write exported CSV/JSON (defaults to `\u003cpath\u003e/report.\u003cformat\u003e`)  \n\nExamples:\n\n```bash\n# default table printed to stdout\njunit-reporter -path ./build\n\n# export CSV alongside printing\njunit-reporter -path ./build -output-format csv -output-file ./build/report.csv\n```\n\n## Examples\n\nBasic runs:\n\n```bash\n# print totals per version (default)\njunit-reporter -path ./build\n\n# print per-tick averages (faster numbers)\njunit-reporter -path ./build -ticks\n\n# use median instead of average in ticks mode\njunit-reporter -path ./build -ticks -median\n\n# group files by semantic version extracted from filenames\njunit-reporter -path ./build -group\n\n# group and collapse to major versions (e.g. 7.x)\njunit-reporter -path ./build -group -major\n\n# rotate output: versions as rows, tests as columns\njunit-reporter -path ./build -rotate\n```\n\nExporting:\n\n```bash\n# export CSV to a file (and still print table)\njunit-reporter -path ./build -output-format csv -output-file ./build/report.csv\n\n# export JSON (useful for automated processing)\njunit-reporter -path ./build -output-format json -output-file ./build/report.json\n```\n\nIntegration / regression workflow:\n\n```bash\n# save baseline outputs for later comparison\njunit-reporter -path ./build \u003e build/runs/run-default.txt\njunit-reporter -path ./build -ticks \u003e build/runs/run-ticks.txt\njunit-reporter -path ./build -group \u003e build/runs/run-group.txt\n\n# after refactor/change, regenerate and diff\njunit-reporter -path ./build \u003e build/runs/post/run-default.txt\ndiff -u build/runs/run-default.txt build/runs/post/run-default.txt\n```\n\nRunning tests:\n\n```bash\ngo test ./...         # run unit \u0026 integration tests\ngo test ./... -cover  # show coverage\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbavix%2Fjunit-reporter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbavix%2Fjunit-reporter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbavix%2Fjunit-reporter/lists"}