Esse repositório tem um exemplo de como organizar um projeto Python com testes de unidade. Foi usado o pipenv para criar o ambiente virtual e gerenciar os pacotes.
- Python3
- pip3 (para instalar o pipenv)
pip3 install --user pipenv
- IDE
- PyCharm; ou
- Visual Studio Code com as seguintes extensões
Fazer uso do pipenv como gerenciador de pacotes. Ele substitui o pip
e o virtualenv
.
Para garantir que o diretório .venv
será criado dentro do diretório do projeto e não em $HOME/.local/...
, coloque a seguinte linha no arquivo de configuração da tua shell (.bashrc
ou .zshrc
no home do seu usuário).
export PIPENV_VENV_IN_PROJECT=1
Carregue novamente a shell (p.ex. fechando o terminal atual e abrindo um novo terminal, ou source ~/.bashrc
ou source ~/.zshrc
)
mkdir python-olamundo
cd python-olamundo
# criando ambiente virtual
pipenv --three
# carregando ambiente virtual
pipenv shell
# criando estrutura de diretórios (pacotes Python) e arquivos (módulos Python)
mkdir saudacao
touch saudacao/__init__.py
touch saudacao/ola_mundo.py
mkdir tests
touch tests/__init__.py
touch tests/test_ola_mundo.py
Após isso o diretório do projeto deverá ficar como apresentado abaixo.
python-olamundo
├── Pipfile
├── saudacao
│ ├── __init__.py
│ └── ola_mundo.py
└── tests
├── __init__.py
└── test_ola_mundo.py
Ao instalar um pacote com o pipenv, esse será automaticamente adicionado no arquivo Pipfile o qual manterá todas as dependências de pacotes desse projeto.
# Exemplo para demonstrar como instalar a biblioteca Requests
pipenv install requests
Isso irá criar o arquivo Pipfile.lock
e uma explicação sobre o mesmo pode ser encontrada aqui.
Se clonar um repositório que já tenha os arquivos Pipfile
e Pipfile.lock
, você pode instalar os pacotes ali informados com o comando:
pipenv install
Isso seria equivalente ao comando pip install -r requirements.txt
.
No arquivo test_ola_mundo.py tem um simples teste de unidade feito com o framework unittest do Python.
# caso ainda não tenha carregado o ambiente virtual
pipenv shell
# para executar o teste de unidade
python -m unittest -v tests/test_ola_mundo.py
- Abrir a paleta de comando e procurar por Python: Discover Tests, informar o diretório, padrão do nome dos arquivos, etc. Depois disso, acima de cada classe vai aparecer
Run Test
- Para executar os testes, abra o painel (view) de testes e escolha quais testes deseja executar
Esse repositório já contém as configurações do vscode para descoberta dos testes de unidade.
- Veja documentação oficial da JetBrains.
Nesse repositório seguiu-se a proposta PEP 8 - Style Guide for Python Code.
- Módulos são arquivos Python (
.py
) e devem possuir nomes curtos, sempre em caixa baixa e com o estilo snake_case - Pacotes são diretórios que contém módulos Python e devem possuir nomes curtos, sempre em caixa baixa e evitar o estilo snake_case
- A partir do Python 3.3, o arquivo
__init__.py
dentro do pacote é necessário quando se deseja executar algum comportamento quando o pacote for importado. Caso contrário, esse arquivo não é mais necessário.
- A partir do Python 3.3, o arquivo
NomeDeClasses
devem seguir o formato CamelCase (PascalCase)- Métodos, funções e variáveis sempre em caixa baixa e com o estilo snake_case
Sempre que fizer um software é interessante indicar sob qual a licença o mesmo está sendo disponibilizado. Acesse https://choosealicense.com e veja qual licença seria mais adequada para o seu projeto e coloque a mesma no arquivo LICENSE na raiz do projeto.