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, testbuild ou testbuildall

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

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

Caso não tenha instalado o xutest e quiser incluí-lo manualmente no projeto, precisa definir também as propriedades "test.include.dirs", "test.lib.dirs".

Se o xutest já estiver instalado no sistema operacional, não precisa definir as propriedades "test.include.dirs" e "test.lib.dirs".

Atenção: A propriedade "src.dir" deve ser definida e ter valor diferente do diretório raiz do projeto ou parente dele.

Após configurado o FoxMakefile com os caminhos dos includes, lib do xutest e parâmetros para o comando que linka os arquivos de teste, é só criar os testes na pasta da propriedade "test.dir".

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

src.dir=src
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".

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

src.dir=src
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".

Veja um exemplo de teste, supondo a criação do arquivo "test/main.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;
}

Você pode executar o seguinte comando, após configurar as propriedades no FoxMakefile e criar o arquivo "test/main.cpp" com o conteúdo acima:

foxmake testbuild

A saída do comando deve ser a seguinte:

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.