Executando testes de transferidor com um navegador sem interface no Travis CI

Devido ao comportamento travado, não é recomendado executar testes de transferidor com PhantomJS

https://github.com/angular/protractor/blob/master/docs/browser-setup.md

Pessoalmente, eu estava farto de minhas compilações falhando esporadicamente e tendo que executar meus testes várias vezes apenas para que passassem na minha dev box. Decidi mudar para o firefox simples, mas isso causou o problema do que fazer em nosso sistema de CI que não está conectado a um monitor.

xvfb (X Virtual Framebuffer) para o resgate, xvfb é um display virtual para máquinas Linux. Ele permite que você use um navegador e um driver da Web firefox padrão para executar seus testes em um ambiente sem interface com o usuário.

Para configurar no travis, adicione estas linhas ao seu .travis.yml …

antes do script:

– “export DISPLAY =: 99.0”

– sh -e /etc/init.d/xvfb start
– nohup bash -c “./node
modules / protractor / bin / webdriver-manager start 2> & 1 &”
– sleep 5

script:

– grunhido travis-transferidor

Nota: Se, como eu, você estava usando o grunt task selenium start, então isso irá falhar no travis com um erro de selênio “[launcher] Error: UnknownError: Bad request”. Ainda não descobri por que isso acontece, no entanto, iniciar manualmente o webdriver no script anterior funciona perfeitamente.

Para um exemplo completo de nossa configuração travis, consulte o arquivo abaixo:

https://github.com/DigitalInnovation/mns-digital-blog/blob/master/.travis.yml