Esta pasta contém todos os testes automatizados para o ByteBabe CLI.
tests/
├── unit/ # Testes unitários
│ └── commands/ # Testes dos comandos principais
│ ├── hello.test.sh
│ ├── init.test.sh
│ ├── backend.test.sh
│ ├── frontend.test.sh
│ ├── byteedit.test.sh
│ ├── db.test.sh
│ └── docker.test.sh
# Executar testes específicos
bash tests/unit/commands/hello.test.sh
bash tests/unit/commands/init.test.sh
bash tests/unit/commands/backend.test.sh
bash tests/unit/commands/frontend.test.sh
bash tests/unit/commands/byteedit.test.sh
bash tests/unit/commands/db.test.sh
bash tests/unit/commands/docker.test.sh# Executar todos os testes unitários
for test_file in tests/unit/commands/*.test.sh; do
echo "Executando: $test_file"
bash "$test_file"
echo "---"
done- hello - 10/10 testes passando
- init - 10/10 testes passando
- backend - 9/10 testes passando
- frontend - 10/10 testes passando
- byteedit - 10/10 testes passando
- db - 10/10 testes passando
- docker - 10/10 testes passando
- git - Testes de controle de versão
- gh - Testes do GitHub CLI
- devtools - Testes de ferramentas de desenvolvimento
- prime - Testes de gerenciamento de sistema
- flux - Testes de API
- ide - Testes de gerenciamento de IDE
- servers - Testes de gerenciamento de servidores
Cada teste segue um padrão consistente:
# Configuração do ambiente de teste
readonly BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
readonly TEST_TEMP_DIR="$(mktemp -d)"
readonly HOME="$TEST_TEMP_DIR"- Verificação de existência do arquivo
- Verificação de permissões de execução
- Verificação de funções principais
- Verificação de imports necessários
- Verificação de estilo cyberpunk
- Verificação de funcionalidades específicas do comando
- Verificação de comandos e subcomandos
- Verificação de ajuda integrada
# Limpeza após cada teste
rm -rf "$TEST_TEMP_DIR"# Mostra resumo dos testes
echo "Total: $TOTAL_TESTS"
echo "Passou: $PASSED_TESTS"
echo "Falhou: $FAILED_TESTS"- Bash: Scripts de teste nativos
- grep: Busca de padrões nos arquivos
- test: Verificações de arquivos e permissões
- mktemp: Criação de diretórios temporários
- Arquivos de teste:
[comando].test.sh - Funções de teste:
test_[comando]_structure() - Variáveis:
TOTAL_TESTS,PASSED_TESTS,FAILED_TESTS
#!/bin/bash
# Configuração
set -euo pipefail
# Setup
setup() {
mkdir -p "$HOME/.bytebabe"
}
# Testes
test_command_structure() {
# Testes estruturais e funcionais
}
# Cleanup
cleanup() {
rm -rf "$TEST_TEMP_DIR"
}
# Execução
main() {
setup
test_command_structure
cleanup
show_summary
}# Executar com saída detalhada
bash -x tests/unit/commands/hello.test.sh# Executar teste específico
bash tests/unit/commands/hello.test.sh# Verificar se arquivo existe
test -f commands/hello.sh
# Verificar se é executável
test -x commands/hello.sh
# Verificar conteúdo
grep -q "main()" commands/hello.sh- Crie arquivo
tests/unit/commands/[comando].test.sh - Siga o padrão dos testes existentes
- Inclua pelo menos 10 testes estruturais
- Teste funcionalidades específicas do comando
- Execute o teste para verificar funcionamento
git commit -m "test: add unit test for [comando] command
- Add structural unit test for [comando].sh
- Checks for file existence, executability, functions, imports and features
- Follows the same pattern as other command tests"- Todos os novos comandos devem ter testes unitários
- Manter padrão consistente entre todos os testes
- Incluir setup, cleanup e relatório
- Seguir Conventional Commits
- Completar testes pendentes para todos os comandos
- Criar script runner para executar todos os testes
- Adicionar testes de integração para fluxos completos
- Implementar relatórios de cobertura
- Configurar CI/CD com GitHub Actions