Feeds:
Posts
Comentários

Posts Tagged ‘testes bash bats’

Na empresa em que trabalho atualmente, temos muitos processos/scripts feitos em bash. Até pouco tempo atrás não nos preocupavamos muito com testes unitários e de integração feitos em bash; bem diferente de outras liguagens que utilizamos, como: Java e JavaScript, onde a parte de testes unitários e a automatização estão em níveis satisfatórios e ficando cada vez mais rigorosos com o passar do tempo.

De alguns sprints para cá (adotamos há muito tempo scrum), começamos a dar mais atenção à parte de integração contínua dos processos dos nossos sitemas, passando a escrever testes para os scripts bash. Escolhemos aleatóriamente o Bats como framework de testes. Esse é desenvolvido por Sam Stephenson, um cara conhecido da comunidade Ruby; o código está no github, possibilitando assim o fork facilmente. Por enquanto estamos gostando do Bats e não temos previsão de abandoná-lo.

Um exemplo de teste bem simples que está na própria página do github é:


#!/usr/bin/env bats

@test "addition using bc" {
  result="$(echo 2+2 | bc)"
  [ "$result" -eq 4 ]
}

@test "addition using dc" {
  result="$(echo 2 2+p | dc)"
  [ "$result" -eq 4 ]
}

E para rodar o teste, basta executar o comando: $ bats nome_do_arquivo.bats. Como usamos Jenkins + Maven 3, colocamos esses scripts para rodar a partir desses dois utilitários. A integração deles funciona muito bem e é bem simples!
Como podem ver, não existe mais desculpa para não fazer testes e automatizar os scripts da sua empresa também. 😉

Anúncios

Read Full Post »