Concrete Logo
Hamburger button

Rake + Cucumber a seu favor – Parte 1

  • Blog
  • 1 de Setembro de 2017

*Este texto foi originalmente publicado no Medium pessoal do autor. Confira aqui.

Fala galera! Nesta série vou falar um pouco sobre como Rake e Cucumber podem facilitar sua vida com testes automatizados e integração contínua. Melhor não deixar tudo aqui para não ficar cansativo. Na próxima semana eu volto com mais, certo?

Gosto de falar que o Rake é facilitador de tarefas chatas. Com ele é possível executar diversas tarefas, desde realizar um build até um commit.

Cucumber é uma ferramenta que nos permite escrever em linguagem natural (Gherkin), disponível para escrita em diversas línguas e também com suporte a diversas linguagens de programação. Um ponto não menos importante é que suporta BDD (Behaviour-Drive-Development), mas isso é assunto para outro post. Vamos ao que interessa!

O primeiro passo é instalar o Rake na sua máquina:

gem install rake

Importante! Não instale gem com sudo, isso dá uma dor de cabeça gigante, principalmente para usuários de MAC.

Utilizem o brew para instalar o que precisam e o rbenv para gerenciar seus pools de versões de Ruby.

O segundo passo é instalar o Cucumber:

gem install cucumber

Agora é hora de colocar a mão na massa, mas ainda falta alguma coisa, não é mesmo? Precisamos ter um projeto! Então escolha onde seu projeto ficará e dentro da pasta, via terminal, digite:

cucumber --init

Isso vai fazer um pequeno scaffolding do projeto que precisamos, que tem essa estrutura:

features/
├── step_definitions
└── support
└── env.rb
2 directories, 1 file

Depois de criar, navegue até a raiz do seu projeto criado. Lá, vamos adicionar o arquivo Rake.

touch Rakefile

Isso é o que precisamos por enquanto, então vamos voltar ao Cucumber.
Precisamos de um arquivo .feature para conseguir escrever nossa especificação. Infelizmente o próprio Cucumber não tem um gerador de features ‘-‘. Então precisamos criar na mão.

Para esse post, vamos usar uma feature cadastro.feature e o GitHub como exemplo.

touch cadastro.feature
Cenários da cadastro.feature

Depois de criar os cenários da feature de cadastro, precisamos começar realmente a utilizar o Cucumber a nosso favor. Ele possui um sistema de TAGS que facilita a parametrização de nossas features nas circunstâncias em que precisamos criar uma suíte de smoke test. Então, podemos anotar todos os cenários ou features que farão parte desse smoke.

@smoke
Cenário: Posso realizar um cadastro no github, preenchendo os campos obrigatórios
Cenário:Caso tente criar uma conta com usuário existente, devo visualizar uma mensagem de aviso
@smoke
Cenário: Posso me deslogar
Para executar essa suíte de smoke temos que rodar via linha de comando o seguinte step:

cucumber -t @smoke

Por enquanto isso não é nenhum problema, temos apenas uma tag específica para executar toda vez. É bem tranquilo. Nosso cenário muda quanto temos que parametrizar 20 features que possuem diversos cenários e outra suítes com tag. Volto em um próximo post para mostrar como o Rake pode ser nosso melhor amigo quando temos desafios mais complexos. Fechou? Se tiver alguma dúvida ou comentário, é só utilizar os campos abaixo. Até semana que vem!

Trabalha com QA e quer fazer parte de um time fantástico? Clique aqui e deixe seu currículo com a gente.