Micro-framework de testes unitários minimalista
Project description
micro_test - Micro-Framework de Testes Modulares e Funcionais
Descrição
micro_test é a evolução do Test.py, projetado para ser um micro-framework de testes modular e extensÃvel, criado com o objetivo de atender a uma variedade de cenários de teste sem a necessidade de dependências ou configurações complexas. Inspirado pelo feedback e pela prática contÃnua, o micro_test utiliza o paradigma funcional para criar uma estrutura minimalista, de fácil adaptação e com foco em modularidade.
Propósito
Após uma avaliação do Test.py, surgiu a necessidade de criar um framework mais flexÃvel, que pudesse servir de referência para estudos e ser adaptado conforme a necessidade. A ideia central é fornecer uma estrutura minimalista onde o usuário possa adicionar novos tipos de teste com simplicidade, evitando dependências adicionais e mantendo uma curva de aprendizado baixa.
Escolha pelo Paradigma Funcional
A decisão de implementar o micro_test no paradigma funcional foi motivada pelo desejo de explorar esse paradigma em situações práticas. Além de oferecer uma oportunidade de aprendizado, a abordagem funcional favorece a modularidade e a criação de testes isolados e de fácil reutilização. Caso a solução funcional não atendesse às expectativas de extensibilidade, havia um plano de transição para POO, com padrões como Strategy e Template Method.
Funcionalidades e Estrutura Modular
- Funções de Teste Modulares: Cada teste é uma função independente que retorna um valor booleano e uma mensagem personalizada. Isso permite adicionar novos tipos de teste facilmente.
- Relatório e Resumo: micro_test inclui funções para exibir o resultado de cada teste, uma pilha de erros (stack trace) detalhada e um resumo final.
- Gerenciamento Centralizado de Testes: O núcleo do micro_test organiza e disponibiliza as informações dos testes, mantendo um baixo acoplamento entre as funções de teste e o módulo principal.
- Facilidade para Adicionar Novos Testes: Novos testes podem ser adicionados como funções independentes e registradas no núcleo, mantendo o sistema simples e de fácil manutenção.
Exemplo de Uso
# Inicialização das funções do módulo testify
core, summary, report, failure_stack = micro_test()
# O teste de igualdade é implicitamente chamado quando o quarto parâmetro de core é omitido.
core(1, 1, "Testando igualdade de inteiros")
core("Hello", "Hello", "Testando igualdade de strings")
core(4.0, 4.0, "Testando igualdade de números com ponto flutuante")
from tests import not_equals, greater_than, less_than, raises_exception
core(1, 3, "Testando desigualdade de inteiros", not_equals)
core(3, 2, "Testando se é maior que", greater_than)
core(2, 3, "Testando se é menor que", less_than)
def func (a: int):
raise TestFunctionError("Teste de exceção")
# O quinto parâmetro de core é uma lista de argumentos que são passados pela função testada. Neste caso, a função `func`.
core(TestFunctionError, func, "test8", raises_exception, [1])
print(report()) # Imprime o relatório de testes
print(failure_stack()[0]) # Imprime o stack da primeira falha, caso haja falhas. Se não houver falhas, imprime "No failures".
print(summary()) # Imprime o resumo dos testes
Principais Desafios
Um dos principais desafios foi a adaptação ao paradigma funcional, incluindo o uso de funções puras e a manipulação de variáveis no escopo de função, simulando o encapsulamento sem modificadores de visibilidade. Essa prática trouxe aprendizado valioso, com especial atenção para funções puras e encapsulamento através de variáveis locais.
Futuro do Projeto
O micro_test ainda está em fase inicial e poderá ser aplicado a futuros projetos de bootcamp. Com a modularidade alcançada, o próximo passo é validar sua flexibilidade e.
Pretendo continuar a evolução do micro_test, adicionando recursos e melhorias ao longo do tempo, mas mantendo a simplicidade, a facilidade e modularidade. Crescer mantendo a filosofia minimalista é o desafio.
Licença
Este projeto está licenciado sob a licença MIT. Para mais detalhes, veja o arquivo LICENSE.
instalação
Para instalar o micro_test, siga estas etapas:
- Abra o terminal
- Execute o comando:
pip install micro_test
Desenvolvido com muito café e curiosidade! ☕😄
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file micro_test-0.0.2.tar.gz.
File metadata
- Download URL: micro_test-0.0.2.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a023d5f96544a9de74efbad0306ebab8944eb37f10dbdaf9f82a478e9e02cca
|
|
| MD5 |
8270948a841312ede9066ab29313936e
|
|
| BLAKE2b-256 |
8bf103512fcbde1e6a248b588fc0fbb02d2ac38067b9b361c5e850df2af3b7d3
|
File details
Details for the file micro_test-0.0.2-py3-none-any.whl.
File metadata
- Download URL: micro_test-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e242ecd8004fef53f2618b946ec000f8cf926ee1ad163cdfb2945cb7a329c123
|
|
| MD5 |
03e4e944a7af7006214ba7c644794aab
|
|
| BLAKE2b-256 |
0eafa6da3e2957f01db93c7e85ebd584868bfe0a81eb7a8a22d00ce8d7451cb6
|