Назначение Тестовой Системы

Тестовая Система предназначена для упрощения создания тестов, автоматического их запуска, и обработки результатов.

Написание тестов

Каждый тест представляет собой функцию имеющую тип TestResult (*FTestFunction)(void).

Тестовая Система позволяет регистрировать тесты-функции. При регистрации, кроме самой функции, указывается дополнительная информация: строка с именем тестируемой функции, строка с именем класса к которому эта функция принадлежит, строка с кратким описанием теста.

Для упрощения написания и регистрации тестов Тестовая Система содержит макрос TEST(className, functionName, description), используемый для объявления и регистрации теста-функции. Он создает функцию

TestResult t_className_functionName(),

и затем регистрирует ее следующим образом

static bool t_className_functionName_value = CTestCollection::registerTest(t_className_functionName, className, functionName, description);

Существуют, также, упращенные макросы:

Рассмотрим простой пример теста для функции gcd из библиотеки Arageli:

#include "ts/ts.hpp"
#include "arageli/arageli.hpp"

using namespace Arageli;

TEST_FUNCTION(gcd)
{
    int a = 8; 
    int b = 64; 
    int g = gcd(a, b); 
    if(0 != a%g || 0 != b%g) 
    { 
        tout << "GCD fails with" << " gcd( " << a << ", " << b << ") = " << g << "\n";
        return resFAIL; 
    } 
    return resOK;
}

Как мы можем видеть, написание теста предельно просто.

В начале файла должно стоять включение заголовочного файла ts/ts.hpp. За ним должны идти остальные, необходимые тесту, заголовочные файлы и, далее, нужно написать саму функцию теста. Для вывода результатов теста (плохих или хороших) необходимо пользоваться потоком tout, определенным в Тестовой Системе.

Запуск

Тестовая Система не принимает параметров командрной строки. При запуске исполняемого файла, последовательно запускаются все зарегестрированные тесты.

Просмотр результатов

Результаты запуска выводятся в стандартный поток вывода и представляют из себя фрагмент XML (http://www.w3c.org/XML/ )  данных.

Если воспользоваться скриптом ./build/run_tests.bat (при этом текущей директорией должна быть ./build) то будет запущен файл ./bin/test.exe, результаты будут сохранены в ./status и могут быть просмотрены открытием файла ./status/test.log или ./status/test.err.log (содержат непосредственные результы запуска).