====== Метафора пакета 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 То что при выполнении дочерней группы выполняются фикстуры родителя(т.е фикстуры вкладываются друг в друга снизу вверх), является еще одной особенностью тестовой среды.