Verifique se não houve erros no console do navegador com o Transferidor
-
21-12-2019 - |
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?
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 - [])
}]