我使用phpunit在magento的项目中进行测试。 问题是我在magento中找到了这个目录:
magento/
-tests/
--integration/bootstrap.php
---Training/
----Example/
-----Helper/DataTest.php
所以,我有一个bootstrap.php,在这个文件中我关闭了我测试的警告:
require_once __DIR__ . '/../../app/Mage.php';
Mage::setIsDeveloperMode(true);
Mage::app();
$handler = set_error_handler(function () {});
set_error_handler(function ($errno, $errstr, $errfile, $errline) use ($handler)
{
if (E_WARNING === $errno
&& 0 === strpos($errstr, 'include(')
&& substr($errfile, -19) == 'Varien/Autoload.php'
) {
return null;
}
return call_user_func($handler, $errno, $errstr, $errfile, $errline);
});
如果此代码在函数setUpBeforeClass()内部的DataTest.php内部,一切正常,但是当我创建bootstrap.php并在控制台中执行时:
phpunit --bootstrap tests/integration/bootstrap.php tests/integration/
我得到了以下答案:
Fatal error: Uncaught exception 'Exception' with message 'Warning: include(PHPUnit\Extensions\Story\TestCase.php): failed to open stream: No such file or directory in C:\wamp\www\magento\lib\Varien\Autoload.php on line 94' in C:\wamp\www\magento\app\code\core\Mage\Core\functions.php on line 245
Exception: Warning: include(PHPUnit\Extensions\Story\TestCase.php): failed to open stream: No such file or directory in C:\wamp\www\magento\lib\Varien\Autoload.php on line 94 in C:\wamp\www\magento\app\code\core\Mage\Core\functions.php on line 245
我在本地服务器的bin \ php \ php5.5.12(在Windows中)获得了phpunit,我可以在任何目录中访问。
所以,我不明白发生了什么......因为我不需要修改magento的核心来禁用警告。
有人可以帮我理解吗? 谢谢大家!! :)
答案 0 :(得分:1)
您的自动加载器正在尝试加载它不负责的类。