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

Neste artigo você vai ver:

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

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".
5e5eb9a15243441138e27637_marlon-de-alencar
Analista de Testes
Engenheiro de computação, mestrando em Ciências de Computação e jogador de Dota nas horas vagas.

Artigos relacionados

Este site utiliza cookies para proporcionar uma experiência de navegação melhor. Consulte nossa Política de Privacidade.