Utilizando Rake + Cucumber ao seu favor parte — 1
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