/* CODIFICANDO */

Relatos de um programador em contínua aprendizagem.

Economize tempo e mantenha o foco ao rodar seus testes

com 6 comentários

Testar é bom. Esperar os testes rodarem, não. Quando um teste específico falha, o ideal é rodar apenas esse teste e não toda a suíte de testes novamente. Depois que esse cara estiver passando, ai sim rodamos tudo, para termos certeza de que nada mais quebrou. Além disso, se você estiver escrevendo testes para uma app Rails, sabe que sempre que você faz rake spec todo o seu banco é recarregado. Ok, legal… mas e se você quiser rodar apenas um arquivo de specs onde tudo é feito com mocks/stubs e não há acesso ao banco? Porque esperar todo o banco ser carregado?

Seguem abaixo algumas dicas para agilizar a execução dos seus testes.

Para o Rspec

Rodar apenas um arquivo (carregando o banco de teste):

rake spec SPEC=[caminho para o arquivo]_spec.rb

Rodar apenas um arquivo (sem carregar o banco, útil por exemplo para rodar specs de controllers/helpers quando utiliza-se mocks/stubs)

spec [caminho para o arquivo]_spec.rb

Rodar apenas um teste específico dentro do seu arquivo (10 é o número da linha onde se encontra o bloco ‘it’ que você quer executar. Funciona de forma idêntica caso você use o comando ’spec’ ao invés de ‘rake’)

rake spec SPEC=[caminho para o arquivo]_spec.rb:10

Para o Cucumber

Rodar apenas um arquivo

rake features FEATURE=features/[seu arquivo].feeature

Rodar apenas um cenário (10 é a linha onde começa a declaração do cenário)

rake features FEATURE=features/[seu arquivo].feature:10

Escrito por cassiomarques

outubro 7, 2009 às 9:06 pm

Publicado em rails, rspec, ruby, testes

Etiquetado com , ,

6 Respostas

Subscreva aos comentários comRSS.

  1. Muito interessante o post.

    Uma observação: nas novas versões do cucumber é possível rodar apenas o cenário em questão marcando ele com a tag @wip (work in progress) e chamando rake cucumber:wip.

    Nas versões mais antigas isso já era possível com o parâmetro -t.

    Exemplo: Marco um cenário com @trabalhando e executo ele com cucumber -t trabalhando

    Valeu!

    Jefferson Girão

    outubro 7, 2009 em 9:39 pm

  2. No Cucumber, é possível rodar mais de um cenário de um mesmo arquivo:

    rake features FEATURE=features/[seu arquivo].feature:10:22

    Lucas Catón

    outubro 15, 2009 em 6:17 pm

  3. [...] Economize tempo e mantenha o foco ao rodar seus testes – Cássio Marques (Codificando); [...]

  4. O Parallel Spec também é uma ótima alternativa para dar uma melhorada na velocidade dos seus testes: http://github.com/grosser/parallel_specs

    Funciona bem :-)

    Abraço

    Thiago Pradi

    outubro 30, 2009 em 8:05 pm

    • Eu cheguei a tentar usar o parallel spec com postgresql e não estava funcionando legal ainda, mas faz um tempinho já. Vou testar novamente pra ver se melhoraram essa parte, valeu!

      cassiomarques

      outubro 30, 2009 em 8:28 pm


Deixe uma resposta