
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.

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:

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

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:

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.

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_*.


Execute os testes com o comando pytest (na raíz do projeto) e veja se tudo está sendo executado sem erros:

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

2 – CMD + Shift + P (ou CTRL + Shift + P para Windows ou Linux)
- Python: Configure Tests
- Enable Pytest



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:

- A paleta de testes deve ser exibida do lado esquerdo do VsCode:

- A opção de executar os testes deve ser exibida:

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




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
