Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os testes unitários são pedaços de código que testam outras unidades de código numa aplicação, normalmente funções isoladas, classes, e assim por diante. Quando uma aplicação passa em todos os seus testes unitários, pode estar confiante de que pelo menos a funcionalidade de baixo nível do programa está correta.
Python utiliza extensivamente testes unitários para validar cenários durante o desenho de um programa. O suporte a Python no Visual Studio inclui descobrir, executar e depurar testes unitários no contexto do seu processo de desenvolvimento, sem necessidade de executar testes separadamente.
Este artigo apresenta um breve resumo das capacidades de testes unitários no Visual Studio com Python. Para mais informações sobre testes unitários em geral, consulte Teste unitário do seu código.
Pré-requisitos
Visual Studio no Windows instalado com suporte para cargas de trabalho em Python. Para obter mais informações, consulte Instalar suporte a Python no Visual Studio.
Um projeto Python com código ou uma pasta com código Python.
O Visual Studio para Mac não é suportado. O Visual Studio Code no Windows, Mac e Linux funciona bem com Python através das extensões disponíveis.
Selecionar framework de teste para um projeto Python
O Visual Studio suporta dois frameworks de teste para Python, unittest e pytest (disponíveis no Visual Studio 2019 versão 16.3 e posteriores). Por defeito, não é selecionado nenhum framework quando crias um projeto em Python.
Siga estes passos para selecionar a framework de teste para o seu projeto Python:
No Explorador de Soluções, clique com o botão direito no nome do projeto e selecione Propriedades.
No painel de Propriedades do projeto, selecione o separador de Teste e escolha o tipo de framework de Teste :
Para o framework unittest , o Visual Studio atribui o diretório raiz do projeto para descoberta de testes. O valor padrão é
., mas podes especificar uma localização diferente quando configurares as definições do projeto. Também pode especificar uma ou mais strings para o nome de ficheiro de teste Pattern, comotest*.py, test_*.py.Para o framework pytest , opções de teste como padrões de localização de teste e nomes de ficheiros são especificadas usando o ficheiro padrão pytest.ini de configuração. Por defeito, a pasta workspace/projeto é usada para a localização. O padrão padrão de nomes de ficheiro inclui
test_*pye*_test.py. Para mais informações, consulte a documentação de referência pytest.
Observação
Ao definir o padrão do nome do ficheiro, tenha em mente que caracteres especiais como o sublinhado (
_) não são correspondidos pelo coringa (*). Se quiser usar caracteres especiais no nome do ficheiro, especifique esses caracteres na definição do padrão, comotest_*.py.Para guardar a seleção e definições do framework, podes usar o atalho de teclado Ctrl+S .
Depois de configurar o framework, o Visual Studio inicia a descoberta de testes e abre o Explorador de Testes.
Configurar testes para Python sem um projeto
O Visual Studio permite-lhe executar e testar código Python existente sem um projeto, abrindo uma pasta com código Python. Neste cenário, precisa de usar um ficheiro PythonSettings.json para configurar os testes.
Abra o seu código Python existente usando a opção Abrir uma Pasta Local :
Quando abres uma pasta Python, o Visual Studio cria várias pastas ocultas para gerir definições relacionadas com o programa. Para ver estas pastas (e quaisquer outros ficheiros e pastas ocultos, como a pasta .git ) no Explorador de Soluções, selecione a opção Mostrar Todos os Ficheiros :
No Explorador de Soluções, expanda a pasta Definições Locais e clique duas vezes no ficheiroPythonSettings.json para abrir o ficheiro no editor.
Observação
A maioria das configurações mostra dois ficheiros de definições: PythonSettings.json e ProjectSettings.json. Para este exercício, precisas de modificar o ficheiroPythonSettings.json .
Se não vires o ficheiro PythonSettings.json na pasta Definições Locais, podes criá-lo manualmente:
Clique com o botão direito na pasta Definições Locais e selecione Adicionar>Novo Ficheiro.
Nomeie o ficheiroPythonSettings.json, e selecione Enter para guardar as suas alterações.
O Visual Studio abre automaticamente o novo ficheiro no editor.
No ficheiroPythonSettings.json , adicione o seguinte código para definir o
TestFramework. Defina o valor do framework para pytest ou unittest , dependendo do framework de testes desejado:{ "TestFramework": "unittest", "UnitTestRootDirectory": "testing", "UnitTestPattern": "test_*.py" }Para o framework unittest , se não definires valores específicos para as
UnitTestRootDirectorydefinições eUnitTestPatternno ficheiroPythonSettings.json , o Visual Studio adiciona automaticamente estes campos com os valores padrão de.etest*.py, respetivamente.Para o framework pytest , as opções de configuração são sempre especificadas no ficheiro de configuração pytest.ini em vez de através das definições do Visual Studio.
Se o seu programa Python contiver uma pasta src separada da pasta que contém os seus testes, especifique o caminho para a pasta src com a
SearchPathsdefinição no ficheiroPythonSettings.json :"SearchPaths": [".\\src"]Guarda as tuas alterações no ficheiroPythonSettings.json .
Depois de configurar o framework, o Visual Studio inicia a descoberta de testes para o framework especificado. Pode aceder ao teste no Explorador de Testes.
Adicione e descubra testes
Por defeito, o Visual Studio identifica unittest e testes pytest como métodos cujos nomes começam por test.
Para ver como o Visual Studio inicia a descoberta de testes, siga estes passos:
Abra um projeto Python no Visual Studio.
Defina as Propriedades do framework de teste para o projeto, conforme descrito no Selecionar o framework de teste para o projeto Python.
No Explorador de Soluções, clique com o botão direito no projeto e selecione Adicionar>Novo Item.
No diálogo Adicionar Novo Item , selecione o tipo de ficheiro Python Unit Test .
Introduza um nome de ficheiro que satisfaça a definição de Padrão que especificou para as Propriedades do projeto.
Selecione Adicionar.
O Visual Studio cria o ficheiro de teste com código predefinido:
import unittest class Test_test1(unittest.TestCase): def test_A(self): self.fail("Not implemented") if __name__ == '__main__': unittest.main()Este código importa o módulo padrão
unitteste deriva uma classe de teste a partir dounittest.TestCasemétodo. Quando executas o script diretamente, este código também invoca aunittest.main()função.
Quando adicionas novos ficheiros de teste, o Visual Studio disponibiliza-os no Explorador de Testes.
Veja os testes com o Test Explorer
Depois de configurar o framework de testes e os ficheiros de teste, o Visual Studio procura testes e apresenta-os no Explorador de Testes.
Aqui estão algumas das formas como pode trabalhar com o Test Explorer:
Abra a janela Explorador de Testes selecionando Teste> e Explorador de Testes.
Quando a janela do Explorador de Testes estiver aberta, use o atalho de teclado CTRL+R, A para ativar a descoberta do teste.
Clique duas vezes num teste no Explorador de Testes para abrir o ficheiro fonte correspondente no editor:
Organize a visualização dos seus testes usando a opção Agrupar por na barra de ferramentas:
Filtre os testes por nome introduzindo texto no campo de Pesquisa :
Execute testes e veja o estado da execução, conforme descrito na secção seguinte.
Para mais informações sobre o unittest módulo e sobre a escrita de testes, consulte a documentação em Python.
Executar testes com o Explorador de Testes
No Explorador de Testes, pode executar testes de várias formas:
- Selecione Executar Todos (testes na vista) para executar todos os testes mostrados na vista atual com base nas definições do seu filtro.
- Use comandos no menu Executar para executar testes falhados, passados ou não executados em grupo.
- Selecione um ou mais testes e depois clique com o botão direito e selecione a opção Executar Testes Selecionados .
O Visual Studio executa os seus testes em segundo plano. O Explorador de Testes atualiza o estado de cada teste à medida que este é concluído:
Passar nos testes mostra um assinalado verde e o tempo para completar o teste:
Testes falhados mostram um X vermelho com um link de saída que mostra a saída da consola e
unittesta saída da execução do teste:
Verificar testes com o Depurador
Testes unitários são pedaços de código sujeitos a bugs como qualquer outro código e, ocasionalmente, precisam de ser executados num depurador. No Visual Studio Debugger, podes definir pontos de interrupção, examinar variáveis e avançar no código. O Visual Studio também fornece ferramentas de diagnóstico para testes unitários.
Reveja os pontos sobre a verificação dos seus testes com o Depurador do Visual Studio:
Por predefinição, a depuração de testes utiliza o depurador debugpy para o Visual Studio 2019, versão 16.5 e posteriores. Algumas versões anteriores do Visual Studio usam o depurador ptvsd 4 . Se estiveres a usar uma versão anterior do Visual Studio e preferires o depurador ptvsd 3, seleciona a opção Usar Depurador Legado emOpções> de Ferramentas>Depuração>.
Para começar a depurar, defina um ponto de interrupção inicial no seu código, depois clique com o botão direito no teste (ou numa seleção) no Explorador de Testes e selecione Depurar Testes Selecionados. O Visual Studio inicia o depurador em Python como faria para o código de aplicação.
Se preferir, pode usar o Analisar a Cobertura do Código para Testes Selecionados. Para obter mais informações, consulte Utilizar cobertura de código para determinar quanto código é testado.