Инструменты пользователя

Инструменты сайта


limb3_2007_2:ru:packages:tests_runner:tests_tree

Метафора пакета TESTS_RUNNER. Дерево тестов

Главная идея заключается в том, что все тесты располагаются в едином дереве, где к каждому элементу можно добраться при помощи унифицированного пути(к примеру, /0/1 или /1/0/3).

Физически все тесты хранятся в файловой системе, причем, каждая отдельная директория с тестами считается группой, т.е нетерминальным нодом дерева. Терминальным нодом считается просто файл, у который по маске подходит под «*_test.php» или «*Test.class.php»(маска жестко не зашита и может меняться).

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

Группа тестов может иметь «распределенную фикстуру», которая будет выполняться иеархически(см. ниже). Фикстуры хранятся в отдельных php файлах .setup.php и teardown.php для отдельной группы тестов(т.е. внутри директории).

К примеру, есть тестовая группа foo, в которой, в свою очередь, находится группа bar. Если есть фикстура для обоих груп, при выполнении группы bar будут выполнены фикстуры в следующем порядке:

foo/.setup.php
  bar/.setup.php
  bar/.teardown.php
foo/.teardown.php

То что при выполнении дочерней группы выполняются фикстуры родителя(т.е фикстуры вкладываются друг в друга снизу вверх), является еще одной особенностью тестовой среды.

Также возможно задавать некоторые инициализационные параметры в скриптах .init.php для каждой директории, эти скрипты подключаются до фикстур, например:

foo/.init.php
foo/.setup.php
  bar/.setup.php
  bar/.teardown.php
foo/.teardown.php

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
  ____    __    __ __   ____   ____
 / __ \  / /   / // /  / __/  / __/
/ /_/ / / /__ / _  /  / _/   / _/  
\____/ /____//_//_/  /___/  /___/
 
limb3_2007_2/ru/packages/tests_runner/tests_tree.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)