Usando o Guard no lugar do Autotest
Publicado em Developer
autotest guard minitest rails ruby tdd zentest
Ontem, no curso da pós que estou ministrando na FATEC Rio Preto (não é aquele da Bluefish, esse é de menor duração), tive mais uma daquelas surpresas de utilizar um Rails atualizado, com ZenTest e autotest: o autotest não funcionou, dando a seguinte mensagem:
/home/aluno/.rvm/gems/ruby-1.9.2-p290/gems/turn-0.8.3/lib/turn/autorun/minitest.rb:14:in `': MiniTest v1.6.0 is out of date. (RuntimeError) `gem install minitest` and add `gem 'minitest' to you test helper.
E rodando o rake test, também apareceu a mesma mensagem! Oh-oh.
Usando o ZenTest foi fácil resolver, apenas adicionei a minitest no Gemfile e o rake test passou legal:
group :test do # Pretty printed test output gem 'turn', :require => false gem 'minitest' end
Mas o autotest continuava reclamando na hora de rodar. Como não é a primeira vez que me deparo com uma situação dessas (e essa ficou especialmente chata por ter que ver tudo explodido após ficar falando muito bem de TDD para os alunos) resolvi procurar uma alternativa para o autotest e encontrei o Guard!
A proposta do Guard é monitorar o sistema de arquivos e executar determinados procedimentos quando mudarem. Para utilizá-lo com TDD no GNU/Linux, com libnotify (usando sudo apt-get install libnotify-bin, é só adicionar e instalar o Guard e as outras gems necessárias, como o Guard-test, no Gemfile:
group :test do # Pretty printed test output gem 'turn', :require => false gem 'minitest' gem 'guard' gem 'guard-test' gem 'ruby-prof' gem 'libnotify' gem 'ffi' end
Executar o bundle install e inicializar o Guard, o que vai criar um arquivo Guardfile:
bundle install guard init test
Dica: O arquivo Guardfile pode ser movido para o diretório home, como um arquivo hidden, e se algum arquivo .guard.rb for encontrado ele tem o seu conteúdo inserido no Guardfile:
mv -v Guardfile ~/.Guardfile
E pronto, tudo rodando:
O legal é que dá para instalar mais gems para outras funcionalidades na hora que os arquivos forem alterados, como as gems do Rspec, Cucumber, etc., que podem ser conferidas aqui.
Atualizado em 16/11/2011 21:25: Parece que houve alguma mudança em alguma gem e para usar no GNU/Linux agora temos que inserir a gem ffi no Gemfile também.
Comentários
Comentários fechados.
Sem nenhum comentário.
Artigos anteriores
- Pull requests em modo raiz - sex, 22 de dezembro de 2023, 09:57:09 -0300
- Qual a idade do seu repositório? - ter, 27 de dezembro de 2022, 12:50:35 -0300
- Utilizando ctags em projetos Rails mais recentes - qui, 24 de junho de 2021, 08:23:43 -0300
- Fazendo o seu projeto brotar - seg, 15 de julho de 2019, 08:57:05 -0300
- Learn Functional Programming with Elixir - sex, 02 de março de 2018, 18:47:13 -0300
- Ambiente mínimo - Driver Driven Development - qua, 23 de agosto de 2017, 15:15:03 -0300
- Ambiente mínimo - repositórios de código - dom, 16 de abril de 2017, 13:02:14 -0300
- Ambiente mínimo - terminal e navegador - dom, 02 de abril de 2017, 21:43:29 -0300
- Utilizando muitas gems no seu projeto? - sáb, 29 de outubro de 2016, 11:57:55 -0200
- Desenvolvedores e inteligência artificial - seg, 11 de julho de 2016, 09:09:38 -0300