Как спланировать дополнительные тесты, запускаемые внешней подсистемой?

Мы написали парсеры для различных форматов научных данных на Perl.Недавно я добавил набор тестов с файлом парсера _ *. T для каждого формата и подформат.

Конечно, API парсеров точно такой же, только данные, считанные из файлов примеров, которые используются для тестирования синтаксического анализа, отличаются. Чтобы упростить тестовые файлы, я написал подпрограмму, которая передает объект парсера и хеш-структуру, представляющую ожидаемые данные. Похоже,

my $parser = new MyApp::Parser($file);
test_nested_objects = ($parser, {
     property1 => "value",
     property2 => 123,
     subobject_accessor => {
         property3 => "foobar",
     }
}

Подложка test_nested_objects просматривает хэш и запускает тесты для всех свойств, определенных в хеш-коде, например если subobject_accessor может быть вызван, возвращает объект, и этот объект может быть вызван property3 .

Я проверил, сколько тестов запускает весь файл *. T , и добавил tests => 123 во все файлы *. T . Теперь я добавил несколько проверок к общей функции, и все планы неверны.

Как сообщить моему плану о подтестах? Я бы хотел добиться следующего:

  • количество тестов, переданных перед их запуском для просмотра прогресса
  • общее количество увеличилось автоматически → без изменения чисел вручную при редактировании суб
  • отдельные тесты в суб видны, когда выполнение проверки (скрытие тестов в подпрограмме и возвращение только 0 или 1 неприемлемо, потому что мне действительно нужно знать, что не так с проанализированными данными)

Надеюсь, вы понимаете. Извините за длинную историю, но я подумал, что люди, вероятно, не поймут без некоторых предварительных знаний.

8
задан Sinan Ünür 2 November 2011 в 12:20
поделиться