Frisby - Como criar uma ordem de execução para vários testes?

Pessoal,
tenho vários testes de API automatizados com Frisby, porém os executo manualmente em minha máquina, um por um.
Alguém sabe uma forma de automatizar a execução destes testes, em uma ordem específica? Assim pretendo subir para o Jenkins, realizando assim a execução por jobs.

Valeu!

Olá @Thamiris
O Frisby executa as chamadas de forma assíncrona, mas tu pode encadeá-las usando a função after(), conforme a documentação em http://frisbyjs.com/docs/api/.
Pessoalmente não acho essa uma boa alternativa.

0_1502469579890_frisby1.PNG

Mas também pode usar outra biblioteca como apoio. Por exemplo a biblioteca async, que permite que tu controle o fluxo de requisições assíncronas - https://caolan.github.io/async/docs.html#controlflow

0_1502469817280_async1.PNG

@ernestosbarbosa obrigada!

Mas a minha dúvida não era era bem essa. Eu tenho vários arquivos de testes frisby, queria saber se tem como eu gerar algum arquivo que chama os testes.

Na ferramenta grunt você pode criar uma tarefa para rodar esses testes no arquivo gruntfile.js, então você vai informar neste arquivo que quer rodar todos os testes no caminho ['tests/API/**/*.js'] (por exemplo).

Pode usar uma ferramenta de build, como o Grunt ou Gulp , pode criar um shell script, são várias opções, só escolher a que achar mais simples :smiley:

@stefanteixeira @Rafa fiz todo o processo, mas todos os testes quebraram chamando o grunt.
Suspeito que seja por ser necessário realizar um login inicial para gerar um token, assim os outros testes recebem unauthorized.

Como poderia contornar isso? realizar o login a cada teste seria válido?

@Thamiris Tens como mostrar exatamente a mensagem de erro? Tens como mostrar como esta o seu gruntfile.js?

@Rafa @stefanteixeira Consegui rodar!!!
Ainda não está 100% pq algumas coisas ainda preciso fazer manualmente pra evitar quebra. E essa é a minha dúvida.
Como o Grunt chama cada arquivo? Alfabeticamente? Aleatório? Tem como eu setar a prioridade?

@thamiris não sei te dizer, nunca reparei nisso… isso também não tem a ver com o Grunt, e sim com a task usada pra rodar os testes, como o grunt-jasmine-node, que roda testes feitos com Jasmine.

A questão é que os seus testes não podem depender de ordem pra serem executados, cada teste deve fazer o setup necessário e o teardown apropriado, pra não interferir no resultado de outros testes.

Em último caso, tem que procurar saber se dá pra configurar algo na task que vc estiver usando pra rodar os testes.

@stefanteixeira
Então eu devo realizar um login pra cada teste? No caso, tenho um teste que gera um arquivo que os demais testes leem para pegar o token de autenticação.

Não tem como rodar os testes com esse arquivo já criado anteriormente? É necessário ter um teste só pra criar esse arquivo?

@stefanteixeira o token expira de tempos em tempos. Mas acho que realizando o login antes de cada teste vai resolver. Estou alterando aqui e vou testar.
Muito obrigada por toda atenção!

@thamiris entendi… se o login antes de cada teste rodar rápido, deve valer a pena, pra evitar problemas de testes falhando por motivos estranhos :smile:

@stefanteixeira é rápido sim. Somente a chamada de API mesmo e gera o arquivo

Log in to reply

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