O GoogleTest agora segue a filosofia Abseil Live at Head. Recomendamos atualizar para o commit mais recente no branch main
sempre que possível. Publicamos versões semânticas ocasionais, marcadas com v${major}.${minor}.${patch}
(por exemplo, v1.15.2
).
Nossa documentação agora está disponível nas páginas do GitHub em https://google.github.io/googletest/. Recomendamos navegar pela documentação nas páginas do GitHub em vez de diretamente no repositório.
A versão 1.15.2 já está disponível.
A ramificação 1.15.x requer pelo menos C++14.
Utilizamos os sistemas internos do Google para integração contínua.
Estamos planejando depender do Abseil.
Este repositório é uma fusão dos projetos GoogleTest e GoogleMock, anteriormente separados. Eles estavam tão intimamente relacionados que faz sentido mantê-los e liberá-los juntos.
Consulte o Guia do usuário do GoogleTest para documentação. Recomendamos começar com o GoogleTest Primer.
Mais informações sobre a construção do GoogleTest podem ser encontradas em googletest/README.md.
Estrutura de teste xUnit:
Googletest é baseado na estrutura de testes xUnit, uma arquitetura popular para testes unitários
Descoberta de teste:
O Googletest descobre e executa seus testes automaticamente, eliminando a necessidade de registrá-los manualmente
Rico conjunto de afirmações:
O Googletest fornece uma variedade de asserções, como igualdade, desigualdade, exceções e muito mais, facilitando o teste do seu código
Asserções definidas pelo usuário:
Você pode definir suas próprias asserções com o Googletest, simplificando a escrita de testes específicos para o seu código
Testes de morte:
O Googletest suporta testes de morte, que verificam se o seu código sai de uma determinada maneira, tornando-o útil para testar código de tratamento de erros
Falhas fatais e não fatais:
Você pode especificar se uma falha de teste deve ser tratada como fatal ou não fatal com o Googletest, permitindo que os testes continuem em execução mesmo se ocorrer uma falha.
Testes parametrizados por valor:
O Googletest oferece suporte a testes com parâmetros de valor, que são executados várias vezes com diferentes valores de entrada, o que o torna útil para testar funções que recebem entradas diferentes.
Testes parametrizados por tipo:
O Googletest também oferece suporte a testes com parâmetros de tipo, que são executados com diferentes tipos de dados, tornando-o útil para testar funções que funcionam com diferentes tipos de dados.
Várias opções para executar testes:
O Googletest oferece muitas opções para execução de testes, incluindo execução de testes individuais, execução de testes em uma ordem específica e execução de testes em paralelo
O GoogleTest segue a Política de Suporte C++ Fundamental do Google. Consulte esta tabela para obter uma lista de versões atualmente suportadas de compiladores, plataformas e ferramentas de construção.
Além de muitos projetos internos do Google, o GoogleTest também é usado pelos seguintes projetos notáveis:
Os projetos Chromium (por trás do navegador Chrome e do Chrome OS).
O compilador LLVM.
Buffers de protocolo, formato de intercâmbio de dados do Google.
A biblioteca de visão computacional OpenCV.
GTest Runner é um executor de testes automatizado baseado em Qt5 e uma interface gráfica de usuário com recursos poderosos para plataformas Windows e Linux.
GoogleTest UI é um executor de testes que executa seu binário de teste, permite acompanhar seu progresso por meio de uma barra de progresso e exibe uma lista de falhas de teste. Clicar em um mostra o texto da falha. A IU do GoogleTest é escrita em C#.
GTest TAP Listener é um ouvinte de eventos para GoogleTest que implementa o protocolo TAP para saída de resultados de teste. Se o seu executor de teste entende o TAP, você pode achar isso útil.
gtest-parallel é um executor de testes que executa testes do seu binário em paralelo para fornecer aceleração significativa.
GoogleTest Adapter é uma extensão do VS Code que permite visualizar o GoogleTest em uma árvore e executar/depurar seus testes.
C++ TestMate é uma extensão do VS Code que permite visualizar o GoogleTest em uma visualização em árvore e executar/depurar seus testes.
Cornichon é um pequeno analisador Gherkin DSL que gera código stub para GoogleTest.
Leia CONTRIBUTING.md
para obter detalhes sobre como contribuir para este projeto.
Bons testes!