Na primeira parte desta série, falamos sobre como instalar e rodar seu primeiro teste com o AVA.js. Agora, vamos ver como configurá-lo para que ele se adapte ao seu projeto e suas preferências.
Arquivos personalizados
Já vimos que o AVA tem como padrão o arquivo test.js. Mas existe algumas maneiras de configurá-lo para enxergar outros aquivos ou ir para um diretório específico. A mais simples delas é passando o argumento direto no comando:
"scripts": { "test": "ava ./tests/*" }
É possível deixar seus testes separados em diversos diretórios:
"scripts": { "test": "ava **/*.spec.js" }
Para deixar nossa configuração mais legível, podemos colocar isso dentro do objeto AVA no package.json. Fica assim:
"scripts": { "test": "ava" }, "ava": { "files": [ "**/*.spec.js" ] }
Babel
Caso seu projeto use Babel, basta acrescentá-lo no package.json:
"scripts": { "test": "ava" }, "ava": { "files": [ "**/*.spec.js" ], "require": [ "babel-register" ], "babel": "inherit" }
Saída no console
Após a configuração do ambiente de testes, você poderá configurar a saída do resultados dos testes no console. Existem três opções:
default:
verbose:
Permite ver os detalhes de cada teste de forma mais clara. Basta acrescentar “verbose”: true ao seu package.json.
Tap:
O AVA possui suporte a todos os tap reporters. Por exemplo, você pode usar o tap-nyan com o comando ava –tap | tap-nyan.
Coverage
Caso queria um relatório da atual cobertura do código no seu projeto, você pode usar o nyc. A utilização é bem simples: basta adicionar como dependência do seu projeto e adicionar o script “coverage”, como no exemplo abaixo:
"scripts": { "test": "ava" "coverage": "nyc npm test" }, "ava": { "files": [ "**/*.spec.js" ], "require": [ "babel-register" ], "babel": "inherit" }
Watcher
Outra feature importante para ser acrescentada é assistir as modificações em seu código e rodar os testes novamente. Essa é uma prática que ajuda bastante e pode ser feita com a opção -w. Assim:
"scripts": { "test": "ava" "watch:test": "npm test -- -w" }
No fim, nosso package.json ficou da seguinte forma:
"scripts": { "test": "ava" "coverage": "nyc npm test" "watch:test": "npm test -- -w" }, "ava": { "files": [ "**/*.spec.js" ], "require": [ "babel-register" ], "babel": "inherit" }
Existem ainda outras configurações possíveis, que podem ser encontradas no repositório do AVA.js.
No próximo artigo, vou mostrar exemplos de testes mais parecidos com os nossos projetos reais. Até a próxima!
***
Artigo publicado originalmente em: http://www.concretesolutions.com.br/2017/01/02/ava-js-test-runner-futuristico-2/