Configurando o VSCode para trabalhar com Ambiente Virtual, Python e Pytest

No items found.
25/9/2020
Marlon de Alencar
Marlon de Alencar
Analista de Testes

Cearense mestrando em ciências de computação e jogador de Dota nas horas vagas

Está sem tempo para ler? Aperte o play para escutar o artigo.

Python Pytest

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


O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.