Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Você pode escrever e executar seus testes de unidade C++ usando a janela Test Explorer . Funciona tal como funciona para outras línguas. Para obter mais informações sobre como usar o Gerenciador de Testes, consulte Executar testes de unidade com o Gerenciador de Testes.
Observação
Alguns recursos, como Live Unit Testing, Coded UI Tests e IntelliTest não são suportados para C++.
O Visual Studio inclui estas estruturas de teste C++ sem necessidade de downloads extras:
- Microsoft Unit Testing Framework para C++
- Teste do Google
- Boost.Test
- CTest
Você pode usar as estruturas instaladas ou escrever seu próprio adaptador de teste para qualquer estrutura que você deseja usar no Visual Studio. Um adaptador de teste integra testes de unidade com a janela Test Explorer . Vários adaptadores não-Microsoft estão disponíveis no Visual Studio Marketplace. Para obter mais informações, consulte Instalar estruturas de teste de unidade.
Visual Studio 2017 e posterior (Professional e Enterprise)
Projetos de teste de unidade C++ suportam CodeLens.
Visual Studio 2017 e posterior (todas as edições)
O Google Test Adapter está incluído como um componente padrão do desenvolvimento de desktop com carga de trabalho C++. Ele tem um modelo de projeto que você pode adicionar a uma solução. Clique com o botão direito do mouse no nó da solução no Gerenciador de Soluções e escolha Adicionar>Novo Projeto no menu de atalho para adicionar o modelo de projeto. Ele também tem opções que você pode configurar usando Opções de ferramentas>. Para obter mais informações, consulte Como usar o teste do Google no Visual Studio.
Boost.Test está incluído como um componente padrão do desenvolvimento Desktop com carga de trabalho C++ . Ele está integrado ao Test Explorer, mas atualmente não tem um modelo de projeto. Você deve configurá-lo manualmente. Para obter mais informações, consulte Como usar Boost.Test no Visual Studio.
O suporte a CTest está incluído no componente ferramentas CMake para C++, que faz parte da carga de trabalho desenvolvimento para Desktop com C++. Para obter mais informações, consulte Como usar CTest no Visual Studio.
Versões anteriores do Visual Studio
Você pode baixar o adaptador de teste do Google e as extensões do adaptador Boost.Test no Visual Studio Marketplace. Encontre-os em Test adapter for Boost.Test e Test adapter for Google Test.
Sugestão
Você também pode usar o comando Copilot /tests slash para gerar testes de unidade a partir do código. Por exemplo, você pode digitar /tests using Boost framework para gerar testes Boost.Test. Para obter mais informações, consulte Usar comandos de barra no Copilot Chat.
Fluxo de trabalho de teste básico
As seções a seguir mostram as etapas básicas para você começar a usar o teste de unidade C++. A configuração básica é semelhante para as estruturas de teste da Microsoft e do Google. Boost.Test requer que você crie manualmente um projeto de teste.
Criar um projeto de teste no Visual Studio 2022
Defina e execute testes de unidade dentro de um ou mais projetos de teste. Um projeto de teste cria um aplicativo separado que chama o código em seu executável e relata seu comportamento. Crie projetos de teste na mesma solução que o código que você deseja testar.
Para adicionar um novo projeto de teste a uma solução existente:
- Clique com o botão direito do mouse no nó Solução no Gerenciador de Soluções.
- No menu de contexto, escolha Adicionar>novo projeto.
- Defina Language como C++ e digite test na caixa de pesquisa. A captura de tela a seguir mostra os projetos de teste que estão disponíveis quando o Desktop Development with C++ e a carga de trabalho UWP Development estão instalados:
Criar um projeto de teste no Visual Studio 2019
Defina e execute testes dentro de um ou mais projetos de teste. Crie os projetos na mesma solução que o código que você deseja testar.
Para adicionar um novo projeto de teste a uma solução existente:
- Clique com o botão direito do mouse no nó Solução no Gerenciador de Soluções.
- No menu de contexto, escolha Adicionar>novo projeto.
- Defina Language como C++ e digite test na caixa de pesquisa. A captura de tela a seguir mostra os projetos de teste que estão disponíveis quando o Desktop Development with C++ e a carga de trabalho UWP Development estão instalados:
Criar referências a outros projetos na solução
Para habilitar o acesso às funções no projeto em teste, adicione uma referência ao projeto em seu projeto de teste. No Gerenciador de Soluções, expanda seu projeto de teste. Clique com o botão direito do rato em Referências e, em seguida, selecione Adicionar>Referência. Na caixa de diálogo Adicionar Referência , escolha os projetos que deseja testar.
Link para arquivos de objeto ou biblioteca
Se o código de teste não exportar as funções que pretende testar, adicione os arquivos de saída .obj ou .lib às dependências do projeto de teste. Para obter mais informações, consulte Para vincular os testes aos arquivos de objeto ou biblioteca. Não inclua arquivos de objeto que tenham uma main função ou outro ponto de entrada padrão, como wmain, WinMainou DllMain. Quando você adiciona novos arquivos de origem ao seu projeto, atualize as dependências do projeto de teste para incluir os arquivos de objeto correspondentes.
Adicionar diretivas #include para arquivos de cabeçalho
No ficheiro de teste de unidade .cpp, adicione uma diretiva #include para qualquer cabeçalho que declare os tipos e funções que deseja testar. Digite #include "e, em seguida, o IntelliSense é ativado para ajudá-lo a escolher. Repita para mais cabeçalhos.
Sugestão
Para evitar ter que digitar o caminho completo em cada instrução include no arquivo de origem, adicione as pastas necessárias em Project>Properties>C/C++>General>Additional Include Directories.
Escrever métodos de teste
Observação
Esta seção mostra a sintaxe do Microsoft Unit Testing Framework para C/C++. Para obter mais informações, consulte Referência da API Microsoft.VisualStudio.TestTools.CppUnitTestFramework.
Para obter a documentação do Google Test, consulte a cartilha do Google Test. Para Boost.Test, consulte Biblioteca Boost Test: A estrutura de teste de unidade.
O .cpp ficheiro no seu projeto de teste tem uma classe de stub e um método definidos para si. Eles mostram um exemplo de como escrever código de teste. As assinaturas usam as macros TEST_CLASS e TEST_METHOD, que tornam os métodos detetáveis na janela Test Explorer .
TEST_CLASS e TEST_METHOD fazem parte do Microsoft Native Test Framework. O Test Explorer descobre métodos de teste em outras estruturas suportadas de maneira semelhante.
Um TEST_METHOD retorna vazio. Para produzir um resultado de teste, use os métodos estáticos na Assert classe para testar os resultados reais em relação aos resultados esperados. No exemplo a seguir, suponha MyClass que tem um construtor que aceita um std::string. Este exemplo mostra como você pode testar se o construtor inicializa a classe da maneira esperada:
TEST_METHOD(TestClassInit)
{
std::string name = "Bill";
MyClass mc(name);
Assert::AreEqual(name, mc.GetName());
}
No exemplo anterior, o Assert::AreEqual resultado da chamada determina se o teste passa ou falha. A Assert classe contém muitos outros métodos para comparar os resultados esperados com os resultados reais.
Você pode adicionar características aos métodos de teste para especificar proprietários de teste, prioridade e outras informações. Em seguida, você pode usar esses valores para classificar e agrupar testes no Gerenciador de Testes. Para obter mais informações, consulte Executar testes de unidade com o Gerenciador de Testes.
Executar os testes
No menu Teste , escolha Test Explorer. A ilustração a seguir mostra um projeto de teste antes de executar testes.
Observação
A integração do CTest com o Test Explorer ainda não está disponível. Execute testes CTest a partir do menu principal do CMake.
Se algum dos seus testes estiver faltando na janela, crie o projeto de teste clicando com o botão direito do mouse em seu nó no Gerenciador de Soluções e escolhendo Compilar ou Reconstruir.
No Gerenciador de Testes, escolha Executar Tudo ou selecione os testes específicos que deseja executar. Clique com o botão direito do rato num teste para aceder a outras opções, incluindo executá-lo no modo de depuração com pontos de interrupção ativados. Depois de todos os testes serem executados, a janela mostra os testes que passaram e os que falharam.
Para testes com falha, a mensagem exibe detalhes que ajudam a diagnosticar a causa. Clique com o botão direito do mouse no teste com falha para obter um menu pop-up. Escolha Depurar para percorrer a função onde ocorreu a falha.
Para obter mais informações sobre como usar o Gerenciador de Testes, consulte Executar testes de unidade com o Gerenciador de Testes.
Para obter mais informações sobre testes de unidade, consulte Noções básicas de teste de unidade.
Usar o CodeLens
Visual Studio 2017 e posterior (edições Professional e Enterprise)
CodeLens permite que você veja rapidamente o status de um teste de unidade sem sair do editor de código.
Inicialize o CodeLens para um projeto de teste de unidade C++ de uma das seguintes maneiras:
- Edite e construa seu projeto ou solução de teste.
- Reconstrua seu projeto ou solução.
- Execute testes a partir da janela Test Explorer .
Depois de inicializar o CodeLens, podes ver os ícones de estado dos testes acima de cada teste de unidade.
Escolha o ícone para obter mais informações ou para executar ou depurar o teste de unidade: