Estou me esforçando para fazer testes em todas as aplicações que desenvolvo. Uma coisa que me desanimou bastante foi a lentidão para rodar os testes em Rails com RSpec.

Esta lentidão ocorre porque o Rails sobe toda a aplicação a cada vez que rodo o teste. Deste jeito fazer o ciclo “Erro -> Sucesso -> Refactory -> Sucesso” fica bem complicado e tedioso.

Uma pesquisa rápida e sou apresentado ao Spork!

Spork?

Sim. A idéia é bastante simples: rodar um servidor e executar os testes neste servidor sem precisar iniciar a aplicação inteira toda vez que rodar o teste.

O menino suporta os frameworks RSpec, Cucumber e Test_Unit

Mas como usar?

Simples.

Adicione no Gemfile do seu projeto:

gem “spork-rails”

Então atualize as Gems executando na raiz do seu projeto

# bundle install

Deixe o Spork fazer a mágica de atualizar as configurações de inicialização. Ele mesmo se vira para descobrir qual framework de testes você está usando.

# bundle exec spork –bootstrap

Agora basta inicia o servidor do spork

# bundle exec spork

E por fim, passe a executar os seus testes utilizando a opção “-X”. Vou dar o exemplo usando o RSpec:

# bundle exec rspec spec -X

Tadá! Testes rodando rápido e com emoção!

Referencias