Debugando com o ByeBug

Bruno Batista
automação com batista
4 min readMay 23, 2018

Você já passou pela situação de não estar conseguindo rodar um comando em testes, por algum motivo de elemento mapeado errado entre outras situaçōes. E ter que rodar seus testes de novo para ver se conseguiu mapear correto ou se funcionou o comando que você inseriu?

Então pra isso existe os depuradores/debugger para ruby existem dois depuradores principais o Byebug e o Pry. Mas nesse post iremos falar apenas do Byebug.

Instalando o Byebug:

Dentro do arquivo gemfile adicione a gem ‘byebug’

Depois de um bundle install no terminal:

bundle install

E por ultimo de um require do byebug no env.rb.

Feito a instalação vamos começar a debugar em tempo real, chega de ficar rodando seus testes toda hora par ver se o código funcionou ou não.

Neste código acima tem um pequeno erro de mapeamento de elemento o “useremail” está faltando um “_”. Ou seja ele nã irá preencher o campo email e irá dar erro. E o que o pessoal faz normalmente? mapeiam o elemento de novo e coloca pra rodar os testes ate funcionarem. Só que isso perde muito tempo dependendo do cenário então vamos usar o Byebug para rodar os comandos em tempo real e ver se esta funcionando.

Para isso temos que colocar o comando “byebug ” antes do comando que está errado:

Assim ao chegar na linha do byebug ele ira abrir o terminal e seraá nele que você irá inserir os comandos e ver eles serem executados na hora assim evitar perca de tempo e consegue ver qual erro está dando antes de terminar todos os testes veja o exemplo abaixo:

Quando eu insiro o comando com o elemento mapeado errado ele irá mostrar o erro como exemplo abaixo:

Ele fala na hora qual foi o erro ou pq não encontrou o elemento.Assim diminui o tempo de você ter que esperar todos os testes rodarem para ver qual o erro está acontecendo e assim corrigir na hora.

Agora vou colocar o elemento correto e veja o que acontece:

Ele diz que preencheu na tag input com o path.

Viu que foi preenchido com sucesso!

Este foi um exemplo básico do uso do byebug que é uma ferramenta muito robusta e serve para várias outras situaçōes.

Abaixo tem uma lista de comandos com várias outras finalidades

Lista de Comandos ByeBug:

break — Define pontos de interrupção no código-fonte.
catch — Lida com pontos de exceção.
condition — Define condições em pontos de interrupção.
continue — Executa até o final do programa, atinge um ponto de interrupção ou atinge uma linha.
debug — Gera um subdebugger.
delete — Elimina pontos de interrupção.
disable — Desativa os pontos de interrupção ou exibe.
display — Avalia expressões toda vez que o depurador parar.
down — Move para um quadro inferior no rastreio da pilha.
edit —Edita arquivos de origem.
enable — Ativa pontos de interrupção ou exibições.
finish — Executa o programa até o frame retornar.
frame — Move para um quadro na pilha de chamadas.
help —Ajuda você a usar o byebug.
history — Mostra o histórico de comandos do byebug.
info — Mostra várias informações sobre o programa sendo depurado.
interrupt — Interrompe o programa.
irb — Inicia uma sessão IRB.
kill — Envia um sinal para o processo atual.
list —Lista linhas de código fonte.
method —Mostra métodos de um objeto, classe ou módulo.
next — Executa uma ou mais linhas de código.
pry — Inicia uma sessão de pry.
quit —Sai do byebug.
restart — Reinicia o programa depurado.
save — Salva a sessão atual do byebug em um arquivo.
set — Modifica as configurações do byebug.
show — Mostra as configurações do byebug.
source — Restaura uma sessão de byebug salva anteriormente.
step — Passos em blocos ou métodos uma ou mais vezes.
thread — Comandos para manipular threads.
tracevar — Permite o rastreamento de uma variável global.
undisplay — Para a exibição de todas ou algumas expressões quando o programa para.
untracevar — Para o rastreamento de uma variável global.
up — Move para um quadro mais alto no rastreamento de pilha.
var — Mostra variáveis ​​e seus valores.
where — Exibe o backtrace.

Referências:

--

--