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
. Ficando 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 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 é a de assistir as modificações em seu código e rodar os testes novamente. Essa é uma prática que lhe 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 post, vou mostrar exemplos de testes mais parecidos com os nossos projetos reais. Até a próxima! :)