Automated Test Analytics
Made Easy.
Your CI shows you one build at a time. TestNod connects the dots across hundreds, helping you spot flaky tests, catch regressions, and see how performance changes over time.
Your CI tells you what failed, but not why it keeps happening
Flaky tests waste hours
We've all done it. A test fails, you hit re-run, it goes green, and you forget about it. Then the same test fails again next week. Without tracking, these flaky tests quietly eat hours across the team.
Regressions hide in plain sight
Your test suite gets a little slower each week. Pass rates drift down gradually, from almost 100% to under 90% over a couple of months. By the time someone flags it, you're dealing with a real problem.
CI logs aren't analytics
CI gives you one answer: did this build pass or fail? It won't tell you which tests are getting flakier, what's slowing down, or where to focus your effort. That kind of insight means digging through logs yourself.
TestNod shows you the trends that CI alone doesn't
CI tools tell you if a build passed or failed. That's one data point. TestNod connects data points across builds and shows you what you'd otherwise miss: which tests fail intermittently, where durations are creeping up, what changed and when.
Payments API
Last run: 2 hours agoMobile App
Last run: 5 hours agoThe signal your CI doesn't give you
Upload your test results and start seeing the trends, alerts, and flaky test patterns your CI never surfaces.
Dead-simple integration
Use a GitHub Action, CircleCI orb, Jenkins plugin, or GitLab include to upload results. There's nothing custom to build or maintain, and all you need is a JUnit XML file.
Trends over time
See how pass rates, failure patterns, and test durations shift across builds. Pinpoint exactly when something changed, and whether it's getting better or worse.
Smart alerts
Get an email when a test starts failing intermittently, when pass rates drop below your threshold, or when a suite slows down, so you don't have to check a dashboard.
Your team is shipping faster than ever. Your test suite needs to keep up.
AI coding assistants are changing the pace of development. More code, faster PRs, more frequent deploys. That works fine until a flaky test blocks the pipeline or a regression slips through because nobody had time to investigate. The faster you ship, the more your tests need to actually tell you something.
Up and running in minutes
There's no complex setup or agents to install. Just pipe your test results to TestNod and it handles the rest.
Create a project (30 seconds)
Create a project in TestNod and grab your API key to start uploading test results from CI.
Add to your CI pipeline (2 minutes)
Add the TestNod uploader to your CI workflow. Works with every major CI service.
See patterns emerge
Results show up in your dashboard after the first upload. After a few builds, trends and alerts kick in.
- name: Upload results to TestNod
uses: testnod/testnod-uploader@v1
with:
token: ${{ secrets.TESTNOD_TOKEN }}
file: results.xml
orbs:
testnod: testnod/[email protected]
workflows:
test:
jobs:
- test
- testnod/upload:
token: TESTNOD_TOKEN
file: results.xml
requires:
- test
pipeline {
agent any
stages {
stage('Test') {
steps {
sh './run-tests.sh'
}
}
stage('Upload') {
steps {
testnodUpload token: credentials('testnod-token'),
file: 'results.xml'
}
}
}
}
include:
- remote: 'https://raw.githubusercontent.com/testnod/testnod-uploader/main/gitlab/testnod.yml'
upload_results:
extends: .testnod-upload
variables:
TESTNOD_TOKEN: $TESTNOD_TOKEN
TESTNOD_FILE: results.xml
Frequently asked questions
TestNod works with any test framework that produces JUnit XML reports, including RSpec, pytest, JUnit, Cypress, Playwright, and many others. We have integrations for GitHub Actions, CircleCI, Jenkins, and GitLab CI.
Yes. All data is encrypted in transit and at rest. We only store the test metadata provided by the JUnit XML reports, like names, durations, and pass/fail status. We never see your source code or build artifacts.
There will be a free tier for small teams, and we're still working out the details on paid plans. If you join early access, you'll get the best pricing when we launch.
Most teams are up and running in under five minutes. You add a short step to your CI config that uploads the JUnit XML report your test framework already generates, so there's nothing to change about your tests themselves. We have ready-made snippets for GitHub Actions, CircleCI, Jenkins, and GitLab CI.
TestNod monitors your test runs for patterns that are hard to catch manually: flaky tests that pass and fail intermittently, pass rates that gradually decline over time, and test suites whose duration creeps upward. When it detects something, you get a notification with the specific tests involved and the data behind the alert, not just a vague warning.
Yes. Every organization in TestNod supports multiple members, and you can connect as many projects as you need under a single org. Everyone on the team sees the same trends and alert history, which makes it easier to decide as a group which test failures are worth investigating and which are noise.
No. TestNod reads JUnit XML, which is a standard reporting format that virtually every test framework can produce, often with a single flag or a small config change in your test runner. Your tests, assertions, and CI pipeline stay exactly the same.
Be first to try TestNod
We're opening early access soon. Drop your email and we'll get you in, and we're happy to help you set up too.