Fala galera!

Esse será a primeira parte desse post onde vou falar de como utilizar Rake e Cucumber ao seu favor na hora de facilitar sua vida com testes automatizados e integração contínua. Não vou deixar tudo em apenas um post para não ser uma leitura cansativa.

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

O 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 e que suporta BDD (Behaviour-Drive-Development), porém é assunto para outro post falar sobre BDD.

Vamos ao que interessa!

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

gem install rake

Por favor não instalem gem com sudo, isso da uma dor de cabeça gigante, principalmente
para usuários de MAC.

Utilzem 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, porém ainda falta alguma coisa não é mesmo?

Precisamos ter um projeto para conseguir seguir em frente, escolha onde seu projeto ficará e dentro da pasta via terminal digite:

cucumber --init

Isso irá realizar um pequeno scaffolding do projeto que precisamos que tem essa estrutura:

features/

├── step_definitions

└── support

└── env.rb

2 directories, 1 file

Após criar o projeto navegue até a raiz do seu projeto criado que é onde vamos adicionar o arquivo Rake.

touch Rakefile

Isso vai criar facilmente o que precisamos por enquanto, agora vamos voltar ao Cucumber.
Precisamos criar 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 isso na mão.

Vou utilizar para esse post uma feature cadastro.feature, vamos usar o GitHub como exemplo para esse post.

touch cadastro.feature

Cenários da cadastro.feature

Após criar os cenários da feature de cadastro precisamos começar realmente a utilizar o Cucumber ao nosso favor, ele possui um sistema de TAGS que facilitam a parametrização de nossas features em circunstâncias que precisamos criar uma suite de smoke test, 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 suite de smoke temos que rodar via linha de comando o seguinte step

cucumber -t @smoke

Por enquanto isso não e nenhum problema, temos apenas uma tag especifica então para executar toda vez é bem tranquilo. Nosso cenário muda quanto temos que parametrizar 20 features que possuem diversos cenários e outra suites com tag.

Bom galera, essa foi a primeira parte desse post, na segunda parte irei mostrar como o Rake pode ser nosso melhor amigo quando temos desafios mais complexos.

parte 2:
https://medium.com/assertqualityassurance/utilizando-rake-cucumber-ao-seu-favor-parte-2-dfb799379702

--

--

Wellington Avelino
assert(QA)

Software Eng, Testing, Build Tools, Crossfit, Cycling