![Python Pytest](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e370526ab3d631f052835_python-pytest.jpg)
Nível: básico
Conteúdo:
- Configurando um ambiente virtual simples
- Criando testes simples
- Configurando o VSCode para testes
O objetivo deste último artigo é guiar você na criação de um ambiente virtual com Python e na configuração do VSCode, para trabalhar de maneira mais prática caso seu framework de testes seja o Pytest.
Requisitos:
- Python 3+
- Pip (gerenciador de pacotes do Python)
- Acesso à internet
- VSCode instalado
Desenvolvimento de scripts de testes e praticidade
O Python é uma das linguagens de programação mais buscada dos últimos anos. Alguns fatores devem ter contribuído para esse crescimento exponencial, como a facilidade na manutenção do código, a curva de aprendizagem rápida e ter uma comunidade muito ativa.
Diversas IDEs (Ambiente de Desenvolvimento Integrado, do inglês Integrated Development Environment) surgiram ou se adaptaram para atender às necessidades de programadores.
Um exemplo é o Jupyter Notebook, uma aplicação web open-source que nos dá suporte para criação e compartilhamento de documentos que podem conter códigos, equações, e scripts de visualização de dados. Outra IDE muito utilizada e madura é o Pycharm, que conta com versão pagas, gratuita para a comunidade e estudantil (esta última com mais funcionalidade que a gratuita).
Porém, neste artigo, escolhi o VSCode: uma ferramenta gratuita, open-source, leve e também muito utilizada na comunidade de desenvolvedores.
Ambiente virtual
A linguagem Python vem com diversas bibliotecas e ferramentas nativas. Uma delas é o gerenciador de pacotes PIP. Por meio dele, conseguimos instalar essas libs com o comando pip install nome_pacote.
É preciso atentar-se ao fato de que instalar diversas bibliotecas poderá acarretar uma poluição do seu ambiente de desenvolvimento. E isso não é interessante quando estamos trabalhando com vários projetos, porque é possível que um projeto use alguma lib em uma determinada versão, enquanto outro pode usar essa mesma lib mas em outra versão, resultando assim em possíveis conflitos.
Ainda assim, o Python lida muito bem com esse problema: ele permite criar ambientes virtuais que possibilitam a separação na instalação desses pacotes.
Para instalar o módulo que cria e gerencia esses ambientes virtuais, basta utilizar o comando pip install virtualenv (quem estiver usando python nas versões 2 e 3, pode utilizar o pip3). Algumas distribuições linux (como o Ubuntu) podem pedir que o usuário instale o python3-virtualenv à parte.
1. Crie seu ambiente virtual
Crie um diretório de sua escolha, e, com o terminal, acesse este local.
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374b5cd697c336eda16b_vmb8G9Wzdf76q0Ke_ikGnDoni_cNhrDjof8FGQP2_RAtS4r_7wh2Pz_o48TvThR5DofW0HDKrjH6AixfJm4VukdAhrSSbcH1VzeTAe_0VKm6TNzvcWkXrlZl8fq63Eb9hmzOoz9r.png)
O comando padrão da criação segue o modelo virtualenv [opções] nome_da_pasta. Faremos o nosso com o comando virtualenv -p python3 venv_zup. O “-p python3” significa que estou obrigando que o ambiente virtual seja criado utilizando a versão 3 do Python:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374be591682d7fddbabb_7sAT8oSn6pHFidLo_jSnoyxnx1MI-varVe9hIPc3kcQYAEhXojn-kOTGa3q-7MQ01nm9_yYjFvhP3hnhcRR9qTVoeAa1uB-y2iFOYEF5nIcQxjoE0WVD-KGYsTUT0fIJjYZl3tTg.png)
2. Ative seu ambiente virtual
Para ativar seu ambiente virtual, basta digitar o seguinte comando:
- Linux/Mac: source path_to_venv/bin/activate
- Windows: path_to_venv/Scripts/activate.bat
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374b4171d6788cbe11e2_6B9U8v3SPrwyNbDcWddKPGvdsNM2x-40ONkRTVzDLaHr-0_aPyWg2yKzwvYx_U8kKIBHEAycfQFrVpiA6sLmwMPrBhKaZTQ3xAyEVyYNKzamT2cRdywbzdFCxUjVSnsOB6EpuSt5.png)
Veja que o terminal exibe entre parênteses o nome do ambiente virtual criado.
3. Abra seu VSCode na pasta raíz do projeto
Esta deve ser a pasta criada anteriormente (não dentro do venv_zup).
Crie um arquivo chamado requirements.txt e coloque o pytest como dependência do projeto:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374b4171d6609fbe11e1_OgHUDmSkujvqQxknrUCBzPuVI1MgFyqqf00VPsXHgspkZ7X414ssdJLSxE3XBN-woy7pPpunVYJoy96enxX2mcOUNfw81AS6-XfXoektC1C-CrlIbZBJeqmERO-GQgewi2c494FV.png)
Instale as dependências do projeto com o comando pip install -r requirements.txt. Todas as dependências do projeto devem estar listadas nesse arquivo de texto. É ele que vai nos orientar sobre o que precisamos instalar para executar nossos projetos.
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374be2822c701ab6a53b_Trvw9dcRv0ebsOHsQzUAeXgAn9hPT4PesNMVtap3hC05T1RU-F6rAGzJ3rsjU3ef3pp-phLMhr88SST6rUY0DTQsiS4Q0I-RAwIbXMjNxkpGNj8uok8IpHmhsIYtEsaNtwzqucjf.png)
4. Crie dois arquivos de testes simples
Lembre-se que os arquivos de testes devem ter o nome das formas *_test.py ou test_*.py e as funções de teste devem ter o nome test_*.
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374b896916f22efa389c_lkhYYQ-9n_DMj4QNDIrCLuDAvWg3LWVGTZoqSMR2vLUCRkS0izv8m4AkuEOBJqKAAveSVtsNxL_-swWsm_xZtTymdnKJxuZ2pfe1lme1Z5H6AMAiI5ky8-W35fNmYfna_Bs-42vb.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c4171d672cfbe11e3_9cKk6gwJDGHf8k3_TJbwOgW7wiPQuJNF4DQWiE1hva5VA69CNfK2kFTinKIUGus5jIVcCE12F3KoufNUKkAT5FaZkN-UMDey1VTywP6VQ1bUA-ZLZvKwZDVHksc4lMDWuhZUDQIu.png)
Execute os testes com o comando pytest (na raíz do projeto) e veja se tudo está sendo executado sem erros:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374cc0be4813af85833d_Ea4nUa7_IbZKHMwtyc5iy5OrbvhiFtyEerlzbr45GLDBi2tOywxSjJZ4PbcvPpciBg-ey3vYQVljyiYtuX1BOBmmEmUzt8elAdmGMshnkBKX09ngl-NiR0_cXrC63e7nfPsxaQYe.png)
Mova esses testes para um diretório chamado tests.
5. Configure o VSCode para detectar testes do Pytest
1 – Instalar a extensão do Python dentro do VSCode
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c88cfc9e9fabe0a03_qAT2T0wrdAJjLrOOeYlEALRzRBtVy7d0gR7E53O7RAPgi4_2KO9u7m0Myn49MZQlH9vq4BFEoI0ULJLDZauoTM_KO0bEkT3j5B0Y5LeZeOI-7BH67DKDk1aaOcjW-uAYyOGNwHiz.png)
2 – CMD + Shift + P (ou CTRL + Shift + P para Windows ou Linux)
- Python: Configure Tests
- Enable Pytest
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c5d646307404400e2_U0HSpiJHqu1huNlUzbRxJ7cqjrLE29ghXqCixghysnNGUVim03kbNbFm61s2hXO6cLuUzTsQSX10h394242V_5U_wHWXKb7LUuvtN9ScJD0eS8i3XLUL1BgdhQ90bCqZK5Bn4x7t.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c4171d62655be11e4_La1ViuoCuA1i3r9XjkB2Coes7HbcFFVqi0PzjgN-XnC201x0RB3PKvVhoz7WNwIMjQUx6jRucQFGeBJYzCSqBn_vlfY5QEshlLvKGzmkt1VQfyeQtg4TAH7osj8dLb_b4v-CBrKR.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c00f6fe3fec12deaf_JD85SYC0jl4B_Y200Sc3LYnMr7T4uwbuUMjwpvWuRO7UU5DMuEQHbfXUI8Q1Qoh02yckUEWE0vTRLWeAoqhIC1YMDOTkjIBuwuNVMkk6MiIcRdbGOJosjN0lhQ0XUciCmcR21WRO.png)
3 – CMD + Shift + P
- Python: Discover Tests
- Sempre que um teste for desenvolvido, deve-se executar esse comando para que ele seja exibido no menu de testes:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374c353cd580926dbe12_L6wsqGnJFUCKoIbYShJEgnZF2YyguWRAVzjJIJdODQzWp2OTzrIcyG57DmYUEORsA8N7vPYiiG8LR4Q8RF-bxZk8rFJbS84rXtk3_J_lxvndo4ZQIlvNBzqHcqXdZqIXpDoDk51K.png)
- A paleta de testes deve ser exibida do lado esquerdo do VsCode:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374d88cfc935babe0a06_7dCby9OXQxHDF8bEtVdX0rBMw10JhbbZ8S_4K-KnXhYOXV5-GcR35eMbP0TRuVD2LREg7HquTqNkGH3Vm-Sr3ttku5g0Pkw77Vn_E2yw49gM-wo0AXGZx7BYpIoV6jWBTKW9z3aK.png)
- A opção de executar os testes deve ser exibida:
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374de591688615ddbac3_4W1CKKGJTNnJuhUqtSh1a3nNeN5I_4YV_sbGyqzWOwSnbDCc6YoJapWSm7mGXuFfH5b32B7haAMmrqy9WydO2clCAJgTWj0lodfE-l3ctWnR2K3lkco2xCN0Pni6_kfQo1aTp1_M.png)
Veja que nossos testes são exibidos corretamente na paleta com a opção de execução e debug de todos, por arquivo ou por método.
6. Configure o VSCode para detectar seu ambiente virtual
Caso o VSCode não tenha detectado automaticamente seu ambiente virtual, basta que você adicione o path do seu venv ao arquivo settings.json de configuração do VSCode:
1 – CMD + Shift + P
- Abrir settings.json
- Add path do ambiente virtual
- “python:pythonPath”:”pathToVenv”
- Caso o venv não seja selecionado automaticamente, basta clicar na versão do python que deseja selecionar (o path do seu projeto deverá estar listado)
- Ao abrir um novo terminal, o ambiente virtual correspondente deve estar habilitado automaticamente
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374da34c2564eec59da2_8Rkh6_K30JjXGzGp-6Kkg4w-BnJ-obf9JVFHHCOtRMX9gpSyl0KqpIlrdGDTkmZklIBat8_NcXvajlFSjCbTWeU01I3lbXdmmIAbm0cKfoG5TwZdbmGngEYsw8YU1scIQhpwgGMz.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374d56ba69e794f30cfe_DQA5RlZIRQZFICVt-FDhm29XLVyVOqJYMQ48VYm7kwFdLyWOKUsEppMPUwCgF-yIjCLsluHzd0VKttut7N0dyo9tGxrc5OPfTgbl_XbW59pF7W3_UxAiz-JZl3Lzkjwx_viubbfl.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374d896916a1c5fa38a0_IQR9gpavya01kfZs-2KcokkbCeLWDjAWjf-Apgtq-wyzX5HOm7bw39sBKEkCnlfQGXW5Rvj74uAglv3SgP03hd-ELarWakfBsuVH7ZFqRVlMbvBZvQJR33VIn6CRbQd_fGUIZVko.png)
![](https://www.zup.com.br/wp-content/uploads/2021/03/5f6e374d26ab3db834052d25_xjWNMft3ocMxLTlVfzHwVNEwPalK-ojlCHBqTLoGtyfC0gTe0QMHV8jNJ2ug5vNFTDcBHfIMZjiOuJ6q0NRs6-wamtlO3GNIY1FoB-jfwLAErCIbqVLHiW54VGXa8nEGnHYAyb06.png)
Assim, a IDE vai reconhecer tudo o que está instalado de fato no seu ambiente virtual, não vai apresentar erros de imports e vai ajudar você com autocomplete e no seu desenvolvimento mais rapidamente.
Chegamos ao fim deste artigo e espero que todos tenham tirado proveito desse conteúdo. Me conta! O que achou do tutorial? Deixe suas dúvidas e sugestões nos comentários!
Quer saber mais sobre testes de APIs com Python? Confira outros artigos sobre!
Testes de APIs REST com Python e Pytest – Parte 1
Testes de APIs REST com Python e Pytest – Parte 2
Testes de APIs REST com Python e Pytest – Parte 3
![Banner com a identidade visual da Zup, nele está escrito Assine nossa Newsletter, os melhores conteúdos sobre carreira e tecnologia no seu e-mail. No final, está um botão com "assinar agora".](https://www.zup.com.br/wp-content/uploads/2022/06/News-_-Banner-05-1024x128.png)