Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
phpunit自动加载冲突,phpunit自动加载获取';它凌驾于_Php_Phpunit_Autoload - Fatal编程技术网

phpunit自动加载冲突,phpunit自动加载获取';它凌驾于

phpunit自动加载冲突,phpunit自动加载获取';它凌驾于,php,phpunit,autoload,Php,Phpunit,Autoload,我的FW使用自动加载功能,我通过spl_autoload_寄存器(“autoload”)添加该功能 我在一个目录上运行phpunit。执行第一次测试后,系统崩溃,原因如下: PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Extensions/SeleniumTestCase.php' (include_path='.:/ ......) in /home/test/functions.php on line

我的FW使用自动加载功能,我通过
spl_autoload_寄存器(“autoload”)添加该功能
我在一个目录上运行phpunit。执行第一次测试后,系统崩溃,原因如下:

PHP Fatal error:  require_once(): 
Failed opening required 'PHPUnit/Extensions/SeleniumTestCase.php' (include_path='.:/ ......)
in /home/test/functions.php on line 139
这指向myautolaod函数,而不是phpunit应该使用的函数。
这是否意味着我的函数先被使用,然后是phpunit函数,它在我的函数中崩溃了


如果我将我的
autoload
更改为使用
include
而不是
require\u一次
它将正常工作。因此,我想这是自动加载函数的顺序问题。

在自动加载函数中,您应该使用
包含_once
而不是
要求_once
,如果找不到文件,将避免致命

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

spl_autoload_register('autoload', true, true);
将引导程序交给phpunit可能会解决这个问题。在您的
phpunit.xml中

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="bootstrap.php">
</phpunit>


似乎是我在PHPunit的XML配置中使用的引导指令,将我的
自动加载放在第一位。知道之后如何运行我的引导程序吗?我知道,无论如何,我解决了这个问题,只在运行测试时使用了一个特定的自动加载。我使用了include_一次,这样就可以很好地工作。spl_autoload_register的第三个参数,如果为true,将根据php文档将其前置到自动加载堆栈(即将其放在开头,而不是结尾)。