Тестирование.Анализ
Данные о тестировании сохраняются в файл error.txt.

Файл ограничен по размеру. Когда размер файла превышает 1000 строк, его содержание переписывается в файл error.nn, а сам файл очищается. Номер файлов (nn) генерируются автоматически. При исчерпании номеров файлы перезаписываются. Очистка файла может быть произведена в любом месте файла (не только в начале тестирования). При длинных сериях тестов для просмотра результата придется просмотреть несколько файлов.

Рассмотрим информацию, которая пишется в файл error.txt.

Для большинства сообщений сохраняется дата, время и тип сообщения. Сообщения типа 'Error' и 'assert' являются следствием непройденных тестов. Остальные являются информационными.

output
 18.06.2009 11:19 Message : +TMyClass

  Начало и конец серии тестов 
Начало серии тестов никак не отмечается. В конце тестирования выводится сообщение, в котором отмечается время начала серии, и количество тестов (выполненных, пройденных, не пройденных). Считается количество тестирующих методов.

output
                  --------: VER180 Running: 2 Passed: 1 not Passed: 1
                  --------: Programm done. Started at : 18.06.2009 11:19:28 ------------------------

  Тестируемый класс 
Для каждого тестируемого класса выводится строка с его именем:

output
 18.06.2009 11:19 Message : +TMyClass

Перед именем класса ставится один из символов:

 * - при регистрации не задана маска файлов и тестирование выполняется всегда
 + - маска файла задана и были изменения
 ? - маска файла задана, но соответствия маске не найдено

  Тестирующие методы 
Если метод класса вызывается для тестирования, его имя заносится в файл error.txt:

output
 18.06.2009 11:19 Message : TMyClass.test_method1

Сразу за именем метода могут следовать сообщения о возможных ошибках (в случае если метод не пройден).

  Несовпадение значений 
Если в тестирующем методе есть вызов Tests.Test и указанные значения не совпадают, для этого метода в файл сохраняется сообщение, в котором указывает требуемое значение и значене, полученное при выполнении. Например для вызова:

pascal
   tests.test('test string', 'test string 1');

в файл будет сохранено следующее сообщение

output
 18.06.2009 13:32 Message : TMyClass.test_method1
 18.06.2009 13:32 Error   : [Pair  1]=[test string]
                                  req=[test string 1]

Номер пары отсчитывается от единицы в пределах текущего тестирующего метода. По этому номеру можно найти вызов, который привел к собщению об ошибке. При необходимости можно указать строку - собщение:

pascal
    tests.test(12345, 123456789, 'test integer');

эта строка также сохраняется в файл:

output
 18.06.2009 13:32 Error   : test integer
                            [Pair  2]=[12345]
                                  req=[123456789]

comment
При работе в IDE Delphi сообщения о несовпадении значений записываются также в окно Event Log. Это позволяет при отладке программы не просматривать каждый раз результат в файле error.txt.

В Evenе Log сохраняются только сообщения, которые являются признаком неуспешного выполнения. Остальные сообщения записываются только в файл, чтобы не загромождать окно сообщений.

  Время выполнения метода 
Если время выполнения тестирующего метода превышает секунду, в файл сохраняется также и значение времени. В некоторых случаях это позволяет оценить производительность и выявить проблемные участки кода.

Например:

pascal
procedure TMyClass.test_method2;
begin
   Writeln('test_method2.execute');
   sleep(2000);
end;

output
 18.06.2009 13:32 Message : TMyClass.test_method2
                  --------: time(sec) :      2,000

Сообщение о времени выполнения не считается ошибкой.

О структуре сообщений при Assert и исключениях смотри соответствующие разделы:

 Тестирование.Вызовы Assert
 Тестирование.Обработка исключений

Copyright © 2009-2014 by