Skip to content
Latchkey

go test vs Testify: como testar código Go no CI

Eles não são rivais: o go test é o runner embutido, e o Testify é uma biblioteca que adiciona assertions e mocks por cima dele.

O go test é o test runner padrão e embutido do Go, usando o pacote testing. O Testify é uma biblioteca de terceiros popular que adiciona assertions expressivas, verificações no estilo require, suites e mocking - tudo executado pelo go test.

go test (stdlib)Testify
PapelTest runner embutidoBiblioteca de assertion/mock por cima
AssertionsManual (if + t.Errorf)Helpers assert / require
MockingFeito à mão / interfacesPacote mock
SuitesFunções simplesPacote suite
Executa viago testgo test (ainda)

No CI

Você sempre executa go test no CI; a questão é se deve adicionar o Testify. A biblioteca padrão mantém os testes livres de dependências e idiomáticos, o que muitas equipes Go preferem. O Testify reduz o boilerplate com assertions legíveis e mocking embutido, o que acelera a escrita de testes para bases de código maiores. Ambos produzem a mesma saída do go test e integram com coverage e -race.

Velocidade e confiabilidade

Use go test -race no CI para detectar data races, faça cache do build/module cache para uma preparação rápida e planeje reexecutar falhas transitórias. Grandes matrizes de testes Go terminam mais cedo em runners gerenciados mais rápidos.

O veredito

Querendo zero dependências e testes idiomáticos com a stdlib: go test puro. Querendo assertions concisas, suites e mocks com menos boilerplate: adicione o Testify (ainda executado pelo go test). Eles se complementam em vez de competir.

Guias relacionados