@devmind-ai/test-reporter
v0.1.0
Published
Parse test runner output (JUnit XML / Jest JSON / Mocha JSON) and report results to DevMind for flaky-test detection
Downloads
62
Maintainers
Readme
@devmind-ai/test-reporter
Parse test runner output (JUnit XML / Jest JSON) and post to DevMind for flaky-test detection.
Install
npm install --save-dev @devmind-ai/test-reporter
# or use directly via npx (no install needed)
npx @devmind-ai/test-reporter results.xmlCLI
devmind-report-tests <file> [options]
Options:
--format <fmt> junit | jest | auto (default: auto, sniffed from extension)
--api-url <url> DevMind API URL (or env DEVMIND_API_URL)
--api-token <token> API token (or env DEVMIND_API_TOKEN)
--repository-id <uuid> DevMind repo UUID (or env DEVMIND_REPOSITORY_ID)
--commit-sha <sha> Commit SHA (or env GITHUB_SHA / CI_COMMIT_SHA)
--pipeline-run-id <id> CI run id (or env GITHUB_RUN_ID / CI_PIPELINE_ID)Generate the API token at https://devmind.vn/profile (scope: tests).
GitHub Actions
- name: Run tests
run: npm test -- --json --outputFile=test-results.json
- name: Report to DevMind
uses: devmind/test-reporter-action@v1
with:
api-token: ${{ secrets.DEVMIND_TOKEN }}
repository-id: ${{ vars.DEVMIND_REPO_ID }}
test-results: test-results.jsonGitLab CI
report-tests:
stage: post-test
image: node:20-alpine
script:
- npx --yes @devmind-ai/test-reporter@latest test-results.xml
variables:
DEVMIND_API_TOKEN: $DEVMIND_TOKEN # set in GitLab CI/CD variables
DEVMIND_REPOSITORY_ID: "<your-repo-uuid>"Programmatic API
import { parseFile, postToDevMind } from '@devmind-ai/test-reporter';
const records = await parseFile('results.xml', { commitSha: process.env.GITHUB_SHA });
await postToDevMind(records, {
apiUrl: 'https://api.devmind.vn',
apiToken: process.env.DEVMIND_TOKEN,
repositoryId: process.env.DEVMIND_REPO_ID,
});Supported formats
- JUnit XML — emitted by Maven Surefire, Gradle, jest-junit, mocha-junit-reporter, pytest --junitxml, etc.
- Jest JSON —
jest --json --outputFile=results.json
Mocha JSON: not yet supported. Use mocha-junit-reporter to emit JUnit XML, then this works.
What DevMind does with the data
Records are stored in the TestRunRecord table. The flaky-test detector cross-references multiple
runs of the same test against the same commitSha — different outcomes = flake. Threshold defaults:
5% flake rate, ≥5 sample size, 14d window. See https://devmind.vn/flaky-tests.
License
MIT
