Показаны сообщения с ярлыком dunit. Показать все сообщения
Показаны сообщения с ярлыком dunit. Показать все сообщения

понедельник, 29 марта 2010 г.

Вывод лога DUnit в файл

Иногда нет возможности запускать тесты из консольного приложения, что делает невозможным логгирование вывода стандартными средствами. Что бы, к примеру, запущенная после коммита процедура сборки/тестирования, в случае ошибки, бросила в почту разработчикам лог с непрошедшими тестами.

Для решения на скорую руку был набросан простенький класс (чуть более чем полностью слизанный с TextTestRunner), позволяющий логгировать все в файл - FileTestRunner

Проверен на D2009.

среда, 24 марта 2010 г.

Упрощение CheckException в DUnit с помощью анонимных функций

К сожалению, для проверки функции на возврат исключения возможен только для процедуры типа:
TTestMethod  = procedure of object;
procedure CheckException(AMethod: TTestMethod; AExceptionClass: TClass; msg :string = '');
Легким движением руки(наследником или правкой оригинального класса) для свежих версий Delphi упрощаем написание таких тестов:

TTestProc2  = reference to procedure;
TTestCase2 = class(TTestCase)
public
  procedure CheckException2(AMethod: TTestProc2; AExceptionClass: TClass; msg :string = '');
end;
Пример использования:
...
CheckException2(procedure begin DirDelete(TestDir); end, EInOutError);