Я пытаюсь создать тесты с использованием PHPUnit в Joomla. После нескольких ошибок это то, что я имею:
pathToProject / тесты / pruebastests.php:
<?php
class PruebasTest extends PHPUnit_Framework_TestCase
{
public function testSimple0()
{
$a = 3-1;
$this->assertEquals(2, $a);
}
public function testSimple1()
{
$this->assertEquals(2, 1 + 2);
}
public function testSimple2()
{
$this->assertEquals(2, 1+1);
}
}
когда я бегу по этому пути:
phpunit pruebatests.php
это дает мне ошибку:
EF.
Время: 3,18 секунды, память: 5,75 МБ
Была 1 ошибка:
1) PruebasTest :: testSimple0 unserialize (): ошибка по смещению 3919 из
8500 байт
Это всегда на первом тесте. Я имею в виду, если я удаляю функцию testSimple0, я получаю ту же ошибку с testSimple1
Я прочитал другие вопросы StackOverflow, связанные с этой ошибкой unserialize, но они не помогли мне.
РЕДАКТИРОВАТЬ: Если я попробую его на другом ПК с другим файлом в том же проекте, ошибка:
unserialize (): ошибка по смещению 4189 из 8484 байтов
Я понял, что ошибка связана с bootstrap.php:
<?php
error_reporting(E_ALL);
define('_JEXEC', 1);
define('BASEPATH', realpath(dirname(__FILE__) . '/../'));
define('JOOMLA_PATH', realpath(dirname(__FILE__) . '/../'));
define('JOOMLA_ADMIN_PATH', realpath(dirname(__FILE__) . '/../'));
$_SERVER['HTTP_HOST'] = 'localhost';
$_SERVER['REQUEST_METHOD'] = 'GET';
define('DS', DIRECTORY_SEPARATOR);
if (file_exists(JOOMLA_ADMIN_PATH . '/defines.php'))
{
include_once JOOMLA_ADMIN_PATH . '/defines.php';
}
if (!defined('_JDEFINES'))
{
define('JPATH_BASE', JOOMLA_ADMIN_PATH);
require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';
define('JPATH_COMPONENT', JOOMLA_ADMIN_PATH . '/components/com_content');
$app = JFactory::getApplication('administrator');
Если я прокомментирую последнюю строку, ошибка исчезнет. Но если я сделаю это, я не смогу создать экземпляр какого-либо контроллера …
Любая идея? Я использую Joomla 3.5 и PHPUnit 4.8
Задача ещё не решена.
Других решений пока нет …