Utilitário para facilitar a criação de unit tests

15 views
Skip to first unread message

Thiago Adams

unread,
May 24, 2021, 5:28:30 PM5/24/21
to ccppbrasil
Fiz um programa que "coleta" os testes unitários de dentro
de um projeto C ou C++.

Esta linha de comando:

maketest.c  out.c file1.c file2.c ....

Coleta os testes que estão dentro da seção  
#ifdef TEST de cada arquivo (file1.c , file2.c) :

#ifdef TEST
 void Test() {
}
#endif

gerando um arquivo  out.c que tem uma função
DoUnitTests que chama todos os testes.

Esta DoUnitTests pode ser chamada no main do programa
para executar os testes.

Então, a automatização consiste em remover/adicionar todos
os unittests e o programador pode focar em apenas escrever
o teste no arquivo normal do fonte. Programas de teste separados
requerem configuração extra de includes libs etc, então vejo 
esta integração como uma vantagem. Todo código de teste
pode ser removido do executável final bastando não definir
a macro TEST.

O que exatamente o teste faz, como são os asserts é por conta de 
cada um. Eu basicamente tenho  uma função ASSERT que loga
o erro no console.

O fonte é pequeno e simples e pode ser customizado por cada um.

Código (compila windows e linux)
http://thradams.com/makeunittest.htm

Pretendo quando sobrar tempo colocar no github.
Fiz também uma versão que lê o projeto do VC++ mas ainda
tenho que atualizá-la (não estou usando no momento então deixei
para depois).



Reply all
Reply to author
Forward
0 new messages