Вот несколько советов по настройке тестовой среды:
1) Ставим limb_unit:
$ pear channel-discover pear.limb-project.com
$ pear install limb/tests_runner-alpha
2) Создаем специальную директорию, "тестовый проект", в котором будут хранится настройки для выполнения тестов, например "~/tests". Создаем в нем скрипт ~/tests/setup.php:
~/tests/setup.php
<?php
//во-первых добавляем директорию ~/tests в include_path
//во-вторых добавляем директорию с Limb3 в include_path
set_include_path(dirname(__FILE__) . '/' . PATH_SEPARATOR .
'~/limb3/trunk/' . PATH_SEPARATOR);
//запрещаем кеширование метаданных БД
@define('LIMB_CACHE_DB_META_IN_FILE', false);
//директория с временными файлами
@define('LIMB_VAR_DIR', dirname(__FILE__) . '/var/');
?>
Создаем файл с настройками для подключения к тестовой БД:
~/tests/settings/db.conf.php
<?php
$conf = array('dsn' => 'mysql://root:secret@localhost/all_tests?charset=utf8');
?>
Также создаем файл настроек для WACT:
~/tests/settings/wact.conf.php
<?php
$conf = array('forcescan' => 1, 'forcecompile' => 1);
?>
3) Прописываем путь до настроек тестового проекта в переменной окружения LIMB_TESTS_RUNNER_CONFIG. Под *nix это следует делать где-нибудь в ~/.bashrc, например "export LIMB_TESTS_RUNNER_CONFIG=~/tests/setup.php". Под windows следует зайти в "свойства компьютера" и там отыскать установку переменных среды.
limb_unit будет подключать настройки, используя эту переменную окружения, если таковая существует. Альтернативно можно задавать путь до тестовых настроек, используя опцию "--config=" для limb_unit, однако, на мой взгляд, использование переменной окружения удобнее.
4) Выполнение тестов для одного пакета:
$ limb_unit limb3/trunk/some_package/tests
5) Выполнение тестов для всех пакетов. Переходим в директорию с Limb3 пакетами и выполняем такую команду для выполнения всех тестов(под *nix):
$ find -maxdepth 3 -name cases | xargs -i limb_unit "{}"
Под windows необходимо поставить unixtools(или cygwin) и команда будет несколько иной:
$ find -maxdepth 3 -name cases | xargs -i limb_unit.bat "{}"
Замечание: вообще limb_unit "понимает" glob символы в путях до тестов, т.е можно тесты запускать и так:
$ limb_unit */tests/cases
Однако в данный момент из-за того, что тесты не до конца изолированы друг от друга, могут возникать ошибки во время выполнения.
6) Подробнее о limb_unit: http://wiki.limb-project.com/doku.php?i ... :limb_unit
7) Также стоит подписаться на лист рассылки http://lists.limb-project.com/mailman/listinfo/limb-dev , туда "сыпятся" все ошибки с ночного сервера билдов
