Scrape Site para Erros JS com Casper.js

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.