Tecnologia

Karma – Test Runner para JavaScript

Por: , outubro 17, 2013

Temos ouvido bastante sobre testes unitários JavaScript, para que o código fique mais robusto e seja mais fácil de refatorá-lo e mantê-lo. Foi então, que surgiram vários frameworks para testes, como Jasmine e QUnit, que são usados para definir os cenários de testes, e escrevê-los (aliás, segue um bom guia para BDD usando Jasmine).

Existem também alguns mais específicos, como o E2E Testing que é feito para testes fim-a-fim em projetos que utilizam o framework Angular JS. Na maioria desses frameworks de testes, é possível rodar a suíte manualmente acessando uma página HTML local, porém, isso é um pouco chato de se fazer, pois não é automatizado e nem sempre é possível rodar em diferentes browsers o tempo todo.

E então foi criado o Karma, construído em NodeJS, com o objetivo de facilitar a execução de seus testes. Ele pode ser instalado facilmente pelo NPM (Node Package Manager) e conta com suporte para os frameworks de teste Jasmine, QUnit e Mocha, porém é bem simples de extendê-lo para que ele rode também outros tipos de testes.

Com o Karma é possível marcar alguns arquivos para serem observados, subir um pequeno servidor local e então, em qualquer mudança nesses arquivos, o Karma irá rodar a sua suíte de testes automaticamente e te apresentar os resultados. Também é bem simples configurá-lo em ferramentas de integração contínua como o Jenkins ou Travis.
Além de ter uma configuração muito simples e interativa, rodar os seus testes em vários browsers, também há vários plugins para integrar a execução em outras ferramentas, geralmente utilizadas para build, como Grunt e Maven (no caso de projetos que também utilizam Java).
Muitas vezes ocorre uma confusão sobre as mudanças nos testes causadas ao utilizar Karma, porém, é válido ressaltar que ele não irá simplificar a maneira como seus testes são escritos, ou ajudar você a construir ótimas suítes só pelo simples fato de usá-lo. O que o Karma faz é apenas rodar os testes de maneira rápida e simples, e aposto que isso pode ajudar muito a sua vida durante o desenvolvimento de aplicações com JavaScript.
 

  • Receba nosso conteúdo em primeira mão.