Protractor - Abrir e fechar o browser para cada `` describe`

Olá,

Estou testando o protractor mas estou com dificuldades de fechar o browser a cada “describe” e abrir um novo, começando assim um novo teste.

Para quem mexe com a ferramenta, alguma ideia?

Os describe e it são do test runner, não do Protractor. O test runner default usado pelo Protractor é o Jasmine. Você controla esse ciclo de vida de execução através de métodos beforeEach / afterEach ou beforeAll / afterAll .

Documentação com exemplos: https://jasmine.github.io/2.5/introduction#section-Setup_and_Teardown

Sim, eu estou usando o seguinte código:

afterAll(function () {

    browser.quit();

});

Mas estou recebendo o erro:

Failed: This driver instance does not have a valid session ID (did you call WebDriver.quit()?) and may no longer be used.

Acho que é desnecessário colocar isso num afterAll, depois de cada spec (arquivo .js) ele já vai fechar o browser de qualquer jeito, até onde lembro.

No arquivo de config do Protractor, o que tem no onPrepare ?

onPrepare: function(){
    // set implicit wait times in ms...
    browser.manage().timeouts().implicitlyWait(5000);

    browser.ignoreSynchronization = true;
    
    // set browser size...
    browser.manage().window().maximize();

    // better jasmine 2 reports...
    var SpecReporter = require('jasmine-spec-reporter');
    jasmine.getEnv().addReporter(new SpecReporter({displayStacktrace: 'spec'}));
}

Segundo o @Walmyr , você pode adicionar na sua config do protractor um restartBrowserBetweenTests: true , pra fazer isso automaticamente.

Olá,

Na verdade eu consegui resolver o problema colocando a linha shardTestFiles: true no ```capabilities` ficando assim:

capabilities: {
	browserName: 'chrome',
    shardTestFiles: true
},

O problema está sendo minha saída dos resultados, que não está muito agradável de se ler porque não está um embaixo do outro:

Veja a imagem aqui: http://take.ms/fRXgT

Esse reporter aqui eu achei sensacional, na última vez que mexi com Protractor usei ele: https://www.npmjs.com/package/protractor-jasmine2-html-reporter

Pode ser uma pergunta idiota, mas é vantagem usar um report que fica no root do projeto sendo que meus testes rodam em integração contínua? Por exemplo:

Testes usando mocha, ele te mostra um output bonitinho quando você abre e vê o resultado no console da ferramenta de CI
Testes usando esse report acima, ele vai ficar no root do projeto (No caso, github) e o mesmo não abre arquivos HTML.

Qual é a jogada aqui para implementar esse report e ver esse relatório após rodar os testes em CI?

@Rafa qualquer servidor de CI tem funcionalidade de publicar reports HTML, então é só publicar. É bem normal publicar reports HTML, reports de cobertura de código, análise estática, etc são HTML na grande maioria das vezes.

Log in to reply

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