Agile Testers TechTalks | Test War Stories - Andreia Gaita @ Tech Lead do GitHub. Saiba mais aqui

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.