O uso do @Before and @After Cucumber Ruby Hooks

Como usar o @Before and @After para implementação de script de automação Cucumber Ruby? Tenho as seguintes feature: “Cadastro”, “Login” e “Esqueci Senha”. Executado separadamente todos testes são executados corretamente. Mas quando executo todas ao mesmo tempo ocorre um erro. Como faço para escolher a ordem dos cenários a serem executados? É Preciso criar algum arquivo? Exemplo eu preciso que login do usuário seja feito antes do cenário esqueceu senha, mas este dois cenários estão em diferentes feature.
Se criar um usuário com a gem Faker consigo utiliza-lo pra realizar o login?

Teoricamente, @Before e @After não devem fazer, aquilo que o teste deve fazer. Se login é necessario para varios cenários de testes, provavelmente seria uma boa prática utitilizar ‘Cucumber Background’. https://github.com/cucumber/cucumber/wiki/Background
Outra coisa a levar em conta é que, testes devem ser independentes uns dos outros, dessa forma, “amarrar” a ordem dos testes não é uma boa prática. Se os testes executados juntos, estão falhando, alguma"sujeira" esta sendo deixada pra trás por outro teste. Nesse caso @Before e @After, serviriam para “Configurar o ambiente” (subir os serviços, por exemplo) e “Limpar” (remover todo dado inserido pelos testes).

Testes não devem depender de ordem pra serem executados, se existe uma pré-condição a ser realizada, crie um step que faça isso. Caso todos os cenários da feature necessitem dessa mesma pré-condição, usa um Background, como falou o amigo acima.

Já estou utilizando o background, fiz os script para o site http://www.phptravels.net/ que é próprio para automação de testes. Depois de uns 10 minutos que insere um registro no site, este registro é automaticamente excluído. Ocorreu a seguinte situação: quando executava todas features de uma fez o cenário esqueceu senha era executado antes do login e estava dando um reset no password. O erro por que no script estava tentando utilizar a senha que tinha sido alterada quando o script esqueceu senha foi executado. Valeu pelas dicas.

Saquei, isso é bem normal mesmo, o complicado é quando um teste interfere no resultado do outro e você não faz ideia do que está acontecendo hehe. Nesses casos de troca de senha, é mais seguro usar um usuário diferente.

Aproveitando a deixa, alguém sabe a nomenclatura em potuguês do “Background” no Specflow? rs

Na documentação do cucumber no github mostra o “parser” para cada linguagem: https://github.com/cucumber/cucumber/blob/master/gherkin/gherkin-languages.json
Basta procurar por " “pt” "

@rondymesquita Perfeito, muito obrigado!

Um adendo, se você tiver a gem do cucumber instalada (Ambiente Ruby):

$ gem install cucumber
$ cucumber --i18n-keywords pt
Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.