1

我的固件使用自动加载功能,我通过spl_autoload_register('autoload');
在目录上运行 phpunit 添加该功能。执行第一次测试后,系统崩溃:

PHP Fatal error:  require_once(): 
Failed opening required 'PHPUnit/Extensions/SeleniumTestCase.php' (include_path='.:/ ......)
in /home/test/functions.php on line 139

这指向我的autolaod 函数,而不是假设使用的一个 phpunit。
这是否意味着我的函数首先被使用,然后是 phpunit 函数,它在我的函数中崩溃了?

如果我改变我autoload的使用include而不是require_once它会正常工作。所以我想这是自动加载功能问题的顺序。

4

1 回答 1

0

您应该在自动加载功能中使用include_once而不是,require_once如果找不到文件,它将避免致命。

或者您可以通过使用将自动加载器放在 SPL 自动加载器堆栈的末尾

spl_autoload_register('autoload', true, true);

将您的引导程序提供给 phpunit,可能可以解决此问题。在你的phpunit.xml

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="bootstrap.php">
</phpunit>
于 2013-04-08T16:58:26.887 回答