Ferramenta grátis

Compilador online com casos de teste

Escreva o seu programa, adicione casos de teste (uma entrada e a saída que você espera) e rode todos de uma vez. Cada teste volta aprovado ou reprovado, com o que o seu programa imprimiu. Grátis, sem cadastro, em 46 linguagens.

Pela equipe do OnlineCompiler.io. Atualizado em .

Also in EnglishTambién en español

Casos de teste

Até 8 testes. Cada um roda o código acima com a sua própria entrada.

  1. Teste 1

  2. Teste 2

Como conferir o seu código com casos de teste

  1. Escolha a linguagem no editor e escreva ou cole o seu programa. Ele lê a entrada pela entrada padrão (stdin) e imprime a resposta.
  2. Em cada teste, coloque a entrada que o programa lê e exatamente o que ele deve imprimir. Cabem até 8 testes.
  3. Escolha como a saída é comparada. O padrão ignora espaços no fim das linhas e linhas em branco no final, como a maioria dos juízes online.
  4. Aperte Rodar testes. Cada teste é aprovado ou mostra o veredito e o que o seu programa imprimiu no lugar.

Os dois testes de exemplo passam com o programa inicial de quase todas as linguagens do editor. Troque-os pelos exemplos do seu problema. O botão Executar do editor continua rodando o código uma vez, com a entrada da aba Entrada, o que ajuda a depurar um caso de cada vez.

Treine para provas de programação e testes técnicos

Testes técnicos de processos seletivos e provas práticas de laboratório costumam corrigir o programa do mesmo jeito que esta ferramenta: rodam o código com entradas que você não vê e comparam o que ele imprime com a saída esperada, dentro de um tempo limite. Antes de enviar, cole os exemplos do enunciado como testes e depois acrescente os casos que pegam a maioria dos erros:

  • a menor entrada possível, como 0, 1 ou uma lista vazia;
  • a maior entrada que o problema permite, para pegar soluções lentas e estouro de inteiro;
  • números negativos, valores repetidos e entradas já ordenadas;
  • entradas com um espaço a mais ou uma linha em branco no final.

Imprima só a resposta. Uma mensagem como Digite n: vira parte da saída e reprova todos os testes.

O que cada resultado significa

ResultadoVeredito na APIO que aconteceu
AprovadoacceptedO programa imprimiu a saída esperada e terminou sem erros.
Resposta erradawrong_answerRodou sem erros, mas imprimiu outra coisa. Compare as duas saídas.
Tempo limite excedidotime_limit_exceededLevou mais de 2 segundos com essa entrada. Procure um laço infinito ou um algoritmo lento.
Erro de execuçãoruntime_errorParou com um erro ou terminou com um código de saída diferente de zero. A mensagem de erro mostra onde.
Erro de compilaçãocompilation_errorO código não compilou, então os testes não rodaram. A saída do compilador aparece abaixo dos testes.
Limite de memória excedidomemory_limit_exceededUsou mais de 512 MB de memória.
Limite de saída excedidooutput_limit_exceededImprimiu mais de 64 KB.

Rode casos de teste a partir do seu app

Esta página usa a API run-tests (em inglês). Uma requisição com o código e os testes devolve um veredito para cada teste, um veredito geral e uma nota, e os testes ocultos devolvem só o veredito. É grátis até 100.000 execuções por mês, e cada teste conta como uma execução. Uma requisição leva até 8 testes no plano Free, 20 no Starter e 40 no Pro.

Terminal
curl -X POST https://api.onlinecompiler.io/api/run-tests/ \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "compiler": "python-3.14",
    "code": "a, b = map(int, input().split())\nprint(a + b)",
    "tests": [
      {"input": "1 2\n", "expected_output": "3\n"},
      {"input": "-5 5\n", "expected_output": "0\n"},
      {"input": "1000000000 1000000000\n", "expected_output": "2000000000\n", "hidden": true}
    ],
    "scoring": "percent"
  }'

Para um juiz completo ou um script de correção, veja como construir um juiz online e a API de correção automática (as duas em inglês). Para colocar um editor com testes na sua própria página, o runTests() do widget (em inglês) faz o mesmo que esta página.

Perguntas frequentes

Este compilador online com casos de teste é grátis?

Sim, é grátis, sem conta e sem anúncios. O seu código roda nos nossos servidores, num sandbox novo para cada teste, em qualquer uma das 46 linguagens.

Quantos casos de teste posso rodar de uma vez?

Até 8 por execução nesta página. Cada teste roda o seu programa uma vez, com a própria entrada, com tempo limite de 2 segundos e 512 MB de memória.

Por que meu teste falha se a saída parece igual?

Quase sempre por uma diferença que não se vê de relance: uma mensagem como input("Digite um número: ") é impressa como parte da saída, um valor sai com casas decimais a mais ou as palavras estão em outra ordem. Na comparação padrão, espaços no fim das linhas e linhas em branco no final não contam; escolha "Ignorar todos os espaços" se o espaçamento muda dentro das linhas.

Os testes podem conferir números decimais ou tabelas?

Sim. "Números com diferença de até 1e-6" aceita números que diferem por um pequeno erro de arredondamento, e "Linhas em qualquer ordem" aceita as mesmas linhas em outra ordem, o que serve para saídas de SQL e pandas.

Posso esconder casos de teste, como num juiz online?

Nesta ferramenta, não. A API run-tests aceita "hidden": true num teste e, nesse caso, devolve só o veredito dele, nunca a entrada ou a saída. Ela é grátis até 100.000 execuções por mês, e cada teste conta como uma execução.

Meu código fica guardado?

Sim. Cada execução fica no histórico de execuções com a saída, como toda execução no site. A página de segurança (em inglês) diz o que é armazenado e por quanto tempo.