Pergunta

Estou usando o Transferidor para testar AngularJS

Quero verificar se no final do teste nenhuma exceção não detectada ocorreu e foi impressa no console do navegador.

Existe uma maneira simples de fazer isso?

Foi útil?

Solução

Se você estiver usando o Transferidor com Jasmine, use o seguinte código:

afterEach(function() {
    browser.manage().logs().get('browser').then(function(browserLog) {
        expect(browserLog.length).toEqual(0);
    });
});

Isso passará no caso de teste se não houver erros no console.Se houver algum erro no console, o teste falhará.

Instruções sobre como acessar o conteúdo do console do navegador podem ser encontradas no Como posso obter o console do navegador seção das perguntas frequentes.

Outras dicas

Transferidor 2.0.0 introduziu um novo console plugin especificamente para a tarefa.

Adicione o seguinte à configuração do transferidor:

plugins: [{
    path: '/path/to/node_modules/protractor/plugins/console/index.js',
    failOnWarning: true,
    failOnError: true
}],

Com um pouco de esforço podemos ajustar a resposta aceita para funcionar com Cucumber.js, caso você não esteja usando o Protractor com a estrutura de teste padrão.

this.After(function(callback) {
    browser.manage().logs().get('browser').then(function(browserLog) {
        if (browserLog.length !== 0) {
            var failMessage = "There was output in the browser console:" +
                              browserLog.map(JSON.stringify).join(";\n");
            callback.fail(failMessage);
        }
        else {
            callback();
        }
    });
});

Você vai querer verificar a documentação em Depois dos ganchos, que são equivalentes do Pepino ao Jasmine afterEach.

Como @velochy afirmou que agora existe um pacote próprio para o módulo: https://www.npmjs.com/package/protractor-console-plugin

Você pode usá-lo em seu transferidor.conf:

  plugins: [{
    package: 'protractor-console-plugin',
    failOnWarning: {Boolean}                (Default - false),
    failOnError: {Boolean}                  (Default - true),
    logWarnings: {Boolean}                  (Default - true),
    exclude: {Array of strings and regex}   (Default - [])
  }]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top