Recentemente, precisei reorganizar arquivos javascript em um aplicativo Rails enorme. Eu queria ter certeza de que não havia quebrado as dependências de javascript com a reorganização, então precisava rastrear o site em busca de erros de js cada vez que reestruturava a estratégia de carregamento de js.
Acabei usando CasperJs para fazer isso. Foi muito fácil.
Primeiro instale o Casper
brew install casperjs
É assim que meu roteiro ficou parecido
var casper = require('casper').create();
var errors = [];
// log into the site first
casper.start('http://localhost:3000', function() {
this.fill('form[action="/session"]',
{
'login[email]': 'username',
'login[password]': 'password'
}, true);
});
// add as many pages as you would like...
casper.thenOpen('http:localhost:3000/accounts/1/products');
casper.on("page.error", function(msg, trace) {
this.echo("Error: " + msg, "ERROR");
this.echo("file: " + trace[0].file, "WARNING");
this.echo("line: " + trace[0].line, "WARNING");
this.echo("function: " + trace[0]["function"], "WARNING");
errors.push(msg);
});
casper.run(function() {
if (errors.length > 0) {
this.echo(errors.length + ' Javascript errors found', "WARNING");
} else {
this.echo(errors.length + ' Javascript errors found', "INFO");
}
casper.exit();
});
Em seguida, execute o script, no meu caso o chamei de “check_for_errors.js”
casperjs check_for_errors.js
O script irá gerar quaisquer erros encontrados nas páginas que você acessou.