我正在尝试使用Joomla中的PHPUnit创建测试。有几个错误之后这就是我所拥有的:
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.75MB
有1个错误:
1)PruebasTest :: testSimple0 unserialize():偏移3919处的错误 8500字节
它始终在第一次测试中运行。我的意思是,如果删除testSimple0函数,我会收到与testSimple1相同的错误
我已阅读与此反序列化错误相关的其他StackOverflow问题,但它们对我没有帮助。
编辑:如果我在同一项目中使用不同文件的其他PC中尝试,则错误为:
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