@joaoseixas/adtest
v0.1.6
Published
CLI to discover and run Adonis test files and cases
Readme
adtest
CLI em TypeScript para localizar testes Japa em projetos Adonis, selecionar testes e montar/executar comandos node ace test.
Requisitos
- Bun para desenvolvimento
- Node.js para executar a saída compilada
Scripts
bun run test— executa a suíte Jestbun run build— geradist/compatível com Nodebun run dev— executa a CLI com Bunnode dist/cli.js— executa a CLI compilada
Como usar
Instalação global via npm:
npm install -g @joaoseixas/adtestExecução com npx:
npx @joaoseixas/adtestExecute a CLI na raiz do projeto Adonis:
adtestO seletor padrão é o fzf:
adtestUsando o seletor interno:
adtest -e enquirerImprimindo apenas os comandos gerados no terminal:
adtest -tCopiando os comandos formatados para o clipboard:
adtest -cCom seletor externo e saída em texto:
adtest -e fzf -t
adtest -e fzf -cExecutando diretamente o último comando salvo para o projeto atual:
adtest -l
adtest --load
adtest -l last
adtest lastBuscando apenas entre os testes dos últimos comandos salvos:
adtest -h
adtest -h -t
adtest -h -cou:
bun run build
adtestFluxo atual:
- encontra arquivos
tests/**/*.spec.tsetests/**/*.test.ts - extrai grupos
test.group('...')e testestest('...') - por padrão, envia os testes para o
fzf - permite filtrar e selecionar os testes diretamente nessa lista
- gera e executa um comando
node ace test ...com os testes selecionados - continua executando as demais suítes mesmo se alguma falhar
Saída em texto
-tou--text-output- imprime apenas os comandos finais
- não executa os testes
- útil para copiar, reutilizar ou colar o último comando manualmente
Exemplo de saída:
node ace test \
--tests="applyFixedCost multiplies quantity by unit cost" \
--tests="it should create an User"Clipboard
-cou--copy- copia os comandos formatados para o clipboard
- não executa os testes
- se usado junto com
-t, também imprime o texto no terminal
O clipboard tenta, nesta ordem:
wl-copyxclipxselpbcopy
Histórico
- o histórico fica em
~/.config/adtest/history.json - o arquivo é global do usuário
- as entradas são separadas por projeto usando o caminho absoluto como chave
- cada projeto mantém os últimos
50comandos executados
-l last
- carrega o último comando salvo para o projeto atual
- pula a seleção de testes
- executa diretamente esse comando
-h
- carrega apenas os testes presentes no histórico recente do projeto atual
- usa esse conjunto menor como fonte da seleção
- útil para repetir rapidamente testes recentes sem varrer o projeto inteiro
Navegação no prompt
- no
fzfpadrão:Ctrl+JeCtrl+Knavegam,Tabmarca eEnterconfirma - no seletor interno (
-e enquirer): digite para filtrar,Alt+JeAlt+Knavegam,TabouEspaçomarcam eEnterconfirma
Seletores externos
-e fzf
- envia todos os testes para o
fzf - não mostra caminhos de arquivo na lista
- mostra grupo com uma indentação e teste com indentação maior
- usa
Tabpara marcar múltiplos itens - usa
Ctrl+JeCtrl+Kpara navegar - ao confirmar, a CLI monta os comandos
node ace test ...
Escopo do MVP
Suportado:
test.group('...')test('...')- testes fora de grupo
- múltiplos grupos no mesmo arquivo
Fora do escopo neste momento:
test.only(...)test.skip(...)test.group(...).tap(...)- nomes dinâmicos de grupos e testes
- wrappers customizados de teste
Quando uma dessas variantes fora do escopo aparecer, a CLI as ignora e continua processando os casos suportados.
