AVA.JS: Um test runner futurístico — parte 2

Raphael
3 min readNov 30, 2016

--

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 avano 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! :)

--

--