Я использую это для модульного тестирования компонентов Joomla, поэтому мой файл всегда будет в папке компонентов, которую я получаю, выполняя:
define('JPATH_BASE', dirname( substr(__FILE__, 0, strpos(__FILE__, 'components') )));
Вот что я положил в начало своего тестового класса для загрузки среды Joomla:
//Load Joomla environment
if (! defined('_JEXEC'))
define('_JEXEC', 1);
$DS=DIRECTORY_SEPARATOR;
define('DS', $DS);
//Get component path
preg_match("/\\{$DS}components\\{$DS}com_.*?\\{$DS}/", __FILE__, $matches, PREG_OFFSET_CAPTURE);
$component_path = substr(__FILE__, 0, strlen($matches[0][0]) + $matches[0][1]);
define('JPATH_COMPONENT', $component_path);
define('JPATH_BASE', substr(__FILE__, 0, strpos(__FILE__, DS.'components'.DS) ));
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once JPATH_BASE .DS.'includes'.DS.'framework.php';
jimport( 'joomla.environment.request' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
Обратите внимание, что Joomla включит буферизацию вывода, поэтому, если кажется, что ваши тесты не дают результата, просто подождите несколько минут.