我试图在Joomla中使用PHPUnit创建测试。在经历了几次错误之后,这就是我所拥有的:
pathToProject/tests/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) PruebasTest::testSimple0取消序列化():在偏移量3919的8500字节处出错
它总是在第一次测试中运行。我的意思是,如果删除testSimple0函数,就会收到与testSimple1相同的错误。
我已经阅读过与此未序列化错误相关的其他StackOverflow问题,但它们并没有帮助我。
编辑:如果我在同一个项目中使用不同的文件在不同的PC上尝试,错误是:
取消序列化():8484字节中偏移量4189处的错误
我已经意识到这个错误与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');如果我注释最后一行,错误就消失了。但如果我这么做了我就不能执行任何控制器..。
有什么想法吗?我正在使用Joomla3.5和PHPUnit 4.8
发布于 2022-08-24 13:44:45
尝试清除缓存。我遇到过这样的问题。在symfony中,原因是/var/cache中的旧*.meta文件
https://stackoverflow.com/questions/40222672
复制相似问题