Я бы хотел указать порядок тестирования в CppUnit. Согласно моим исследованиям, порядок тестирования зависит от компилятора или компоновщика и от того, как они попали на файлы.
Как указать зависимости в CppUnit?
Например, давайте рассмотрим класс прямоугольника с четырьмя строками. Каждая строка содержит два точечных класса. Предположим, что каждый класс находится в отдельном модуле или единице перевода.
struct Point
{
int x;
int y;
};
struct Line
{
Point a;
Point b;
};
struct Rectangle
{
Line top;
Line left;
Line right;
Line bottom;
};
В приведенном выше коде сначала должен быть проверен класс Point, затем класс Line и, наконец, класс Rectangle. Нет причин проверять класс Rectangle, если у классов Line или Point есть проблемы. Это очень упрощенный пример.
Для составных классов сначала должны быть проверены внутренние классы или классы типов данных-членов.
Предположим, что у каждого класса есть связанный класс тестирования. Каждый тестовый класс имеет свои собственные опубликованные тестовые методы (которые зарегистрированы в списке CppUnit) в отдельных файлах. Класс для тестирования Линий не знает класс тестирования для очков; и похоже на прямоугольник. Когда эти классы тестовых примеров компилируются, их порядок зависит от компилятора и компоновщика.
Итак, как можно упорядочить контрольные примеры?
К вашему сведению, я использую CppUnit, wxTestRunner и Visual Studio 2008