A resposta curta
Você não adiciona um arquivo de workflow, nem escreve um script que extraia a URL de preview dos seus logs de build. O TestSprite se instala como um GitHub App, escuta o evento de implantação que seu pipeline já produz, deduz a URL de preview a partir de um padrão que você define uma única vez, executa seus testes contra ela e publica o resultado de volta como um comentário no pull request.
A configuração leva cerca de dez minutos, exige direitos de administrador para instalar um GitHub App e não requer nenhuma alteração no seu repositório.
Seu pipeline implanta
O Vercel compila o pull request e produz um evento de implantação no GitHub. O TestSprite não compila nem implanta nada por conta própria.
O TestSprite ouve o evento
O GitHub App o recebe, resolve a URL de destino a partir do seu padrão e inicia a execução.
Os resultados chegam no PR
Um comentário com contagens de aprovação/falha, etapas que falharam, capturas de tela e um prompt de correção — além de uma verificação obrigatória opcional que bloqueia o merge.
Pré-requisito: confirme que o pull request produz uma implantação
O TestSprite é acionado por um evento de implantação, então esse evento precisa existir antes que qualquer outra coisa funcione. Abra qualquer pull request existente e confirme que uma implantação está listada com uma URL clicável, depois abra essa URL e verifique se o ambiente de preview realmente carrega.
No Vercel, isso aparece como um comentário de bot no pull request listando o projeto, um status Ready e um link para o preview. AWS Amplify, Netlify e pipelines auto-hospedados que criam implantações no GitHub produzem todos o mesmo sinal em seu próprio formato — o que importa é que uma implantação exista e sua URL seja acessível.
Passo 1 — conecte o GitHub ao seu workspace
Esta é uma configuração única por workspace. No TestSprite, vá em Workspace Settings → Integrations, encontre a linha GitHub e clique em Connect. Você será redirecionado ao GitHub para escolher a organização ou conta pessoal que possui o repositório, depois escolha All repositories ou Only select repositories e clique em Install & Authorize.
Vale a pena conhecer as permissões solicitadas antes de aprová-las:
| Acesso | Escopos |
|---|---|
| Leitura | Actions, checks, issues, metadata |
| Leitura e escrita | Code, commit statuses, deployments, pull requests |
O acesso de escrita é usado para publicar os resultados dos testes de volta nos seus pull requests e commits. O TestSprite não envia commits nem modifica seus arquivos de workflow. Se sua organização não aparecer listada durante a instalação, você não tem permissão para instalar GitHub Apps para ela — um proprietário da organização precisa aprová-la.
Passo 2 — conecte o repositório a um projeto
Abra o projeto do TestSprite que você quer conectar, vá na aba GitHub Action e clique em Connect GitHub Action. Depois escolha como os testes devem ser acionados:
| Gatilho | Melhor para | Onde os resultados aparecem |
|---|---|---|
| Pull request | Capturar regressões antes do merge | Um comentário no pull request |
| Push para branch | Testar um ambiente compartilhado como staging ou dev após cada merge | Uma verificação no commit |
Um gatilho já é suficiente para começar. Você pode criar os dois — eles rodam de forma independente um do outro.
Passo 3 — escolha o evento que significa "implantação concluída"
Selecione a aba Pull Request, cole a URL de um pull request existente que tenha uma implantação de preview funcionando e clique em Detect Events. O TestSprite lista os eventos de CI/CD que encontrou nesse pull request — verificações do GitHub Actions, comentários de bot do Vercel ou Amplify, execuções de workflow — e você escolhe qual deles inicia uma execução.
Escolha o evento que dispara depois que a implantação está ativa e a URL é acessível. Esse é o erro de configuração mais comum: um evento que dispara no início do build vai executar seus testes contra uma URL que ainda não está no ar, e todo teste vai falhar.
Passo 4 — preencha o padrão de URL de destino
Cada provedor de hospedagem nomeia URLs de preview de forma diferente, então você informa ao TestSprite como construir a URL para qualquer pull request. Cinco placeholders estão disponíveis:
| Placeholder | Resolve para |
|---|---|
{pr} | Número do pull request |
{branch} | Nome da branch |
{branch-slug} | Nome da branch, seguro para URL |
{sha} | SHA completo do commit |
{short-sha} | SHA abreviado do commit |
Compare o padrão com uma URL de preview real, caractere por caractere:
| Suas URLs de preview se parecem com | Digite este padrão |
|---|---|
https://app-git-login-fix-team.vercel.app | https://app-git-{branch-slug}-team.vercel.app |
https://pr-123.example.com | https://pr-{pr}.example.com |
Os nomes de host de preview padrão do Vercel são construídos a partir da branch, por isso {branch-slug} costuma ser o placeholder correto ali em vez de {pr}. Se seu host gera subdomínios aleatórios sem nada previsível neles, configure uma URL de alias estável para o ambiente de preview e use-a no lugar.
Um gatilho de push não precisa de padrão algum — ele roda contra a URL configurada de qualquer ambiente do TestSprite que você selecionar, então escolha Dev para dev ou Production para main.
Passo 5 — envie um evento de teste antes de salvar
Clique em Send Test Event. Isso executa seus testes contra o pull request de exemplo exatamente como um gatilho real faria, para que você possa visualizar todo o fluxo antes de confirmá-lo. Aguarde cerca de 30 segundos e depois volte ao pull request no GitHub — um comentário do TestSprite aparece.
Abra a URL nesse comentário antes de ir adiante. Confirme que ela é acessível e aponta para o ambiente que você espera. Se estiver errada, corrija o padrão e envie outro evento de teste em vez de esperar o próximo pull request para descobrir. Assim que a execução for concluída, o TestSprite atualiza o mesmo comentário com o resultado.
Quando o evento de teste parecer correto, clique em Create Trigger. Ele aparece na lista de Triggers marcado como Active e roda automaticamente em todo pull request futuro. Duas opções alternáveis valem a pena ser definidas deliberadamente:
| Opção | O que ela faz |
|---|---|
| Include draft PRs | Executa testes tanto em pull requests em rascunho quanto nos prontos para revisão |
| Block PR until tests pass | Torna a verificação do TestSprite obrigatória, então os merges ficam bloqueados enquanto os testes estiverem falhando |
Se seu preview estiver atrás de Deployment Protection
Este é o modo de falha que parece uma configuração funcionando. Com o Deployment Protection do Vercel ativado, toda URL de preview fica atrás de uma barreira de autenticação, e um testador externo recebe a página de login em vez da sua aplicação. Os testes não geram erro — eles descrevem uma página que ninguém esperava.
A verificação do Passo 5 detecta isso: abra a URL do comentário do TestSprite em uma janela privada. Se você vir uma tela de login do Vercel, a proteção está ativada. As duas formas de seguir em frente são desativar a proteção para o ambiente de preview, ou usar o Protection Bypass for Automation do Vercel, que gera um segredo que o Vercel aceita tanto como parâmetro de query x-vercel-protection-bypass quanto como cabeçalho. Como o padrão de URL de destino é apenas uma URL, a forma de parâmetro de query pode ser anexada a ele:
https://app-git-{branch-slug}-team.vercel.app?x-vercel-protection-bypass=YOUR_SECRET
Gere o segredo em Project Settings → Deployment Protection → Protection Bypass for Automation. Seja criterioso com isso — armazena um segredo de bypass em um campo de configuração, então desativar a proteção nos ambientes de preview é a opção mais limpa quando seus previews não contêm nada sensível.
Lendo o resultado
Quando uma execução termina, o TestSprite atualiza seu comentário no pull request — ou a verificação do commit — com o resultado. O comentário é estruturado, e a última linha é a que mais importa se um agente de IA escreveu o código:
| Seção | O que ela informa |
|---|---|
| Resultado principal | Quantos testes passaram, falharam e foram bloqueados |
| Pontuação de qualidade | Calculada sobre o subconjunto executável da sua suíte. Os casos bloqueados são excluídos e reportados separadamente, porque geralmente indicam uma lacuna no ambiente de teste em vez de uma regressão do produto |
| Testes que falharam | Cada falha se expande para mostrar o que era esperado, o que foi observado e uma captura de tela do momento da falha |
| Prompt de correção sugerido | Um prompt pronto para copiar descrevendo a provável causa raiz e a correção, destinado a ser colado diretamente no seu agente de codificação de IA |
Todo resultado leva de volta ao relatório completo no TestSprite.
Verifique sua configuração
Antes de confiar na integração, confirme os cinco pontos:
A integração do GitHub aparece como Connected no seu workspace
O repositório aparece dentro da aba GitHub Action do projeto
Um gatilho está listado e habilitado
Um evento de teste produziu um comentário do TestSprite (pull request) ou uma verificação (push)
A URL nesse comentário ou verificação abre o ambiente implantado correto
Solução de problemas
Todo teste falha e a URL não carrega
O gatilho está disparando cedo demais — em um evento de início de build ou de início de workflow em vez de um de implantação concluída. Edite o gatilho e selecione um evento que dispare depois que o ambiente estiver ativo.
O comentário mostra a URL errada
Compare o padrão de URL com uma URL de preview real, caractere por caractere. Envie outro evento de teste após cada alteração em vez de esperar o próximo pull request.
Nenhum evento aparece em Detect Events
O pull request ou branch não tem eventos de CI/CD registrados, ou o GitHub App não tem acesso àquele repositório. Confirme que o repositório está incluído na instalação do app.
Os testes rodam contra um ambiente desatualizado
Confirme que o evento selecionado corresponde à implantação que você pretende testar. Se uma branch tiver vários ambientes, verifique se a seleção de Environment to test corresponde.
A organização não aparece listada
Você não tem permissão para instalar GitHub Apps para ela. Peça a um proprietário da organização para aprovar a instalação, depois volte ao Passo 1.
Os testes passam, mas o app está quebrado
Verifique o que a URL de preview realmente serviu. Um preview protegido retorna uma página de login que um teste pode descrever sem falhar.
A alternativa via linha de comando
O GitHub App é a resposta certa quando seu pipeline já produz implantações. Se você preferir conduzir a execução a partir do seu próprio workflow — ou não estiver no GitHub — o TestSprite CLI de código aberto faz o mesmo trabalho a partir de qualquer sistema de CI. É gratuito para instalar e licenciado sob Apache-2.0:
npm install -g @testsprite/testsprite-cli
testsprite setup
Aponte um projeto para uma URL que você já resolveu, e execute a suíte até um veredito:
testsprite project update prj_abc123 --url "$PREVIEW_URL"
testsprite test run --all --project prj_abc123 --wait --output json
# exit 0 = everything passed, exit 1 = something is broken
testsprite ci init github monta um workflow para esse caminho, e o CLI precisa apenas de TESTSPRITE_API_KEY no ambiente, então ele se encaixa no CircleCI, GitLab, Jenkins ou Azure Pipelines com a mesma facilidade. Use --report junit --report-file <path> para um relatório complementar que esses sistemas ingerem nativamente.
Se os fluxos que importam para você estiverem atrás do próprio login da sua aplicação, armazene uma conta de teste no projeto para que as execuções possam autenticar. Ambas as flags são obrigatórias juntas:
testsprite project update prj_abc123 \
--username qa@example.com \
--password-file ./.secrets/qa-password
Perguntas frequentes
Preciso adicionar um arquivo de workflow ao meu repositório?
Não. A integração é configurada inteiramente no TestSprite, e nenhuma alteração no seu repositório é necessária.
Isso substitui meu workflow existente do GitHub Actions?
Não. O TestSprite escuta eventos que seu workflow já produz — ele não modifica nem substitui seu pipeline.
Quais provedores de hospedagem são suportados?
Qualquer provedor que reporte uma implantação ao GitHub e exponha uma URL acessível, incluindo Vercel, AWS Amplify, Netlify e pipelines auto-hospedados que criam implantações no GitHub.
Posso ter tanto um gatilho de pull request quanto um gatilho de push?
Sim. Crie-os separadamente — eles rodam de forma independente um do outro.
E se minhas URLs de preview não incluírem o número do pull request?
O campo de padrão de URL espera um padrão previsível. Os nomes de host padrão do Vercel são construídos a partir da branch, então {branch-slug} costuma ser o placeholder correto. Se seu host gera subdomínios aleatórios, configure uma URL de alias estável para o ambiente de preview e use-a no lugar.
O resultado pode alimentar diretamente meu agente de codificação de IA?
Sim — é para isso que serve a seção Suggested fix prompt do comentário. É um prompt pronto para copiar descrevendo a provável causa raiz e a correção, escrito para ser colado em um agente de codificação. Para um ciclo mais completo, testsprite setup --agent claude instala uma skill de verificação para que o agente possa criar, executar e triar testes por conta própria.
Quanto tempo leva a configuração?
Cerca de dez minutos, e você precisa de direitos de administrador para instalar um GitHub App na organização que possui o repositório.
Seu pipeline já emite o sinal. Escute-o.
Testar uma implantação de preview não requer um novo arquivo de workflow, um script que extraia logs de build, ou uma action de terceiros para esperar por uma URL. Seu pipeline já produz um evento de implantação; o trabalho é dizer ao TestSprite qual evento significa "ativo" e como construir a URL a partir dele. Dez minutos, nenhuma alteração no repositório, e todo pull request é verificado contra um navegador real antes de um humano olhar para ele. Para o caminho via linha de comando, leia a referência em docs.testsprite.com e dê uma estrela ao CLI de código aberto no GitHub.