Blog do TaQ

Usando o Guard no lugar do Autotest

Publicado em Developer

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:

Guard 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.
Tags:




Comentários

Sem nenhum comentário.

comments powered by Disqus

Twitter