The TestSprite CLI is now live — open source.Star it on GitHub

Test Every Netlify Preview Before It Merges

Every pull request gets a fresh Netlify preview URL, and almost nobody tests it. TestSprite listens for the deployment event Netlify already reports to GitHub, works out the preview URL, runs your tests against it in a real cloud browser, and comments the result back on the pull request — with no changes to your repository.
Type
Solution
Language
English

Seamlessly Integrates With Your Favorite AI-Powered Editors

Claude CodeCodexVisual Studio CodeCursorTrae
We don't build or deploy anything. Netlify does that, and tells GitHub when the URL is live. We listen for exactly that moment, then test what it produced.

No Workflow File

TestSprite installs as a GitHub App and only reads events, so it sits alongside your Netlify pipeline rather than inside it. Nothing is added to .github/ and your existing workflows are untouched.

A URL Pattern, Not a Scraper

Netlify's deploy preview URLs are built from the pull request number, so {pr} is normally the placeholder you want. Placeholders resolve per run: {pr}, {branch}, {branch-slug}, {sha}, and {short-sha} — so https://deploy-preview-123--site.netlify.app becomes https://deploy-preview-{pr}--site.netlify.app.

Verify Before You Save

Send Test Event runs the whole flow against a sample pull request exactly like a real trigger. A comment appears in about 30 seconds — open the URL in it and confirm it is the environment you expect before creating the trigger.

A Fix Prompt, Not Just a Red Mark

Each failure expands to show what was expected, what was observed, a screenshot from the moment it broke, and a suggested fix prompt written to be pasted straight into your AI coding agent.

Priority
Test
Status
HIGH
TC001_Deploy_Preview_Reachable
Pass
HIGH
TC002_Contact_Form_Submits
Failed
MEDIUM
TC003_Redirect_Rules_Resolve
Pass
MEDIUM
TC004_Netlify_Function_Returns_200
Pass
LOW
TC005_Asset_Cache_Headers_Set
Pass

Catch It on the Preview, Not in Production

A preview deployment is the last place a regression is cheap to fix. Turn on Block PR until tests pass and the check becomes required, so a broken flow stops the merge rather than shipping and being found by a user.

Built for Teams Shipping on Netlify

Pull Request or Branch

A pull request trigger tests each preview and comments on the PR. A push trigger tests a shared staging or production environment after every merge and posts a commit check. Both can run at once.

Web UI and APIs Together

Real browser flows against the deployed preview, plus backend API contract tests. Group them into a test list and one gate covers the whole deployment.

Or Drive It From the CLI

The open-source CLI does the same job from any CI system — free to install, Apache-2.0, and it needs only an API key in the environment.

Free Community Version

Offers a free community version, making us accessible to everyone.

Trusted By Businesses Worldwide

"Good job! Pretty cool MCP from TestSprite team! AI coding + AI testing helps you build better software easily!"

"TestSprite offers rich test case generation, clear structure, and easy-to-read code. It also supports simple online debugging with the ability to quickly expand by generating new test cases."

"TestSprite's automation helps us reduce tons of manual work. The developers can easily catch and resolve bugs earlier in the development process."

FAQ

Do I need to add a workflow file?

No. The integration is configured entirely in TestSprite and requires no changes to your repository. It listens to the deployment events Netlify already reports.

How does TestSprite find the Netlify preview URL?

You give it a URL pattern once. Netlify's deploy preview URLs are built from the pull request number, so {pr} is normally the placeholder you want. Match the pattern against a real preview URL character by character, then use Send Test Event to confirm it resolves correctly before saving.

What if the preview URL has an unpredictable hash in it?

The pattern field expects something predictable. If your host generates random subdomains with nothing stable in them, configure an alias URL for the preview environment and point the pattern at that instead.

Does this work with Netlify's branch deploys as well as deploy previews?

Yes. A pull request trigger covers deploy previews; a push trigger covers branch deploys and runs against the configured URL of the TestSprite environment you select, so no per-run URL pattern is needed there.

What does TestSprite actually test?

Web application UI in a real cloud browser, and backend APIs. It does not drive native iOS or Android UI, desktop applications, or emulators.

Is it free?

The open-source CLI is free to install and Apache-2.0 licensed, and there is a free community tier. Test execution runs in the cloud and consumes workspace credits — 0.5 per frontend run, 0.2 per backend run.

Every Netlify Preview, Checked Before Merge