Testes com xutest

Atenção:
Para visitar a página do framework xutest, acesse: xutest.

Para executar testes com xutest você pode utilizar as seguintes tarefas: test, testlink, testbuild e testbuildall

Para tanto, é necessário definir as propriedades "test.dir" e "test.libs".

Se estiver no linux, é necessário também definir a propriedade "test.linker.params"

Veja abaixo o exemplo de configuração básica do script FoxMakefile:

test.dir=test
test.libs=xutest

IF os != "windows"
    # interpretado somente se estiver no linux
    test.linker.params=-ldl -rdynamic
ENDIF

O exemplo acima assume que a pasta de testes é a pasta "test".

Após configurado o FoxMakefile, é só criar os testes na pasta da propriedade "test.dir".

Veja um exemplo de teste, supondo a criação do arquivo "test/teste.cpp"

#include <xutest/xutest.h>

TEST_CASE( primeiroTeste, Testes ) {
    int a = 1;
    int b = 1;
    int c = 2;
    ASSERT_EQUALS( a, b, )
    ASSERT_TRUE( a == b, )
    ASSERT_FALSE( a == c, )
}

int main() {
    RUN_TEST_CASES_MENU();
    return 0;
}

Feito isto, seu projeto deve ter a seguinte estrutura:

testhelloworld
├── FoxMakefile
└── test
    └── teste.cpp    

Agora, você pode executar o seguinte comando:

foxmake testbuildall

A saída do comando deve ser a seguinte:

Incluíndo o xutest manualmente

Caso não tenha instalado o xutest e quiser inclur manualmente, faça conforme o seguinte exemplo:

test.dir=test

test.include.dirs=include
test.lib.dirs=.
test.libs=xutest

IF os != "windows"
    # interpretado somente se estiver no linux
    test.linker.params=-ldl -rdynamic
ENDIF

O exemplo acima assume que o diretório onde deve procurar o arquivo "libxutest.a" é o diretório corrente. Para outro diretório, é só alterar "test.lib.dirs". Claro, o exemplo acima assume que o nome da static library do xutest tem o nome "libxutest.*", onde o "*" geralmente corresponde a "a" ou "lib". Esse exemplo assume também que a os arquivos de cabeçalho do xutest estão na pasta "include".

Para baixar o projeto "testhelloworld" abordado nessa página, acesse:

Download: testhelloworld.zip.

Próxima aula

O próxima aula ensina como criar uma biblioteca estática para linux ou windows.