Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Php 如果数量过多,Laravel测试将失败_Php_Unit Testing_Laravel 4 - Fatal编程技术网

Php 如果数量过多,Laravel测试将失败

Php 如果数量过多,Laravel测试将失败,php,unit-testing,laravel-4,Php,Unit Testing,Laravel 4,我正在将一个Laravel3站点升级到Laravel4,并在运行过程中为其编写单元测试。这工作得很好,到目前为止,我已经在大约20个测试用例中完成了大约300个测试,并且每个测试都可以单独运行。直到最近,它们都工作得很好,一起运行,但我似乎已经越过了某个阈值,在该阈值下,如果没有以下错误,我无法一次运行更多的测试: PHP Fatal error: Illuminate\Filesystem\Filesystem::getRequire(): Failed opening required '

我正在将一个Laravel3站点升级到Laravel4,并在运行过程中为其编写单元测试。这工作得很好,到目前为止,我已经在大约20个测试用例中完成了大约300个测试,并且每个测试都可以单独运行。直到最近,它们都工作得很好,一起运行,但我似乎已经越过了某个阈值,在该阈值下,如果没有以下错误,我无法一次运行更多的测试:

PHP Fatal error:  Illuminate\Filesystem\Filesystem::getRequire(): Failed opening required '/Users/Me/Desktop/Repos/API-2/app/config/api.php' (include_path='.:/Applications/MAMP/bin/php/php5.4.4/lib/php') in /Users/Me/Desktop/Repos/API-2/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php on line 53
几乎每一个测试都会使用未包含的配置文件,由于所有测试用例在单独运行时都能正常工作,我无法理解为什么只有当它们一起运行时才会发生此错误

这个错误显示测试接近完成的时间,所以我的第一个想法是内存或执行时间限制,我已经尝试在php.ini中将它们加倍,但我认为它们无论如何都不适用于CLI?我不确定还有什么会导致这样的问题,只有当所有这些都一起运行时才会发生

编辑

没人知道这是什么原因吗? 目前我能做的最好的事情就是运行下面的bash脚本,然后滚动结果页面查找错误

#!/bin/bash
for f in app/tests/*Test.php ; do phpunit "$f" ; done

假设这是在基于*nix的系统上,这听起来很像ulimit问题(开放文件限制)

检查
ulimit-n
ulimit-Hn
的输出,分别查看软打开文件和硬打开文件的限制。如果它是一个小得可笑的东西,比如1024,你可能想把它放大

见:

还要注意,这些限制是针对每个用户的,而不是全局限制,因此请确保以运行单元测试的用户身份运行此限制


编辑:错误修正。信息的答案是:因为MacOSX是。。。特别。

假设这是在基于*nix的系统上,这听起来很像ulimit问题(开放文件限制)

检查
ulimit-n
ulimit-Hn
的输出,分别查看软打开文件和硬打开文件的限制。如果它是一个小得可笑的东西,比如1024,你可能想把它放大

见:

还要注意,这些限制是针对每个用户的,而不是全局限制,因此请确保以运行单元测试的用户身份运行此限制


编辑:错误修正。信息的答案是:因为MacOSX是。。。特别。

假设这是在基于*nix的系统上,这听起来很像ulimit问题(开放文件限制)

检查
ulimit-n
ulimit-Hn
的输出,分别查看软打开文件和硬打开文件的限制。如果它是一个小得可笑的东西,比如1024,你可能想把它放大

见:

还要注意,这些限制是针对每个用户的,而不是全局限制,因此请确保以运行单元测试的用户身份运行此限制


编辑:错误修正。信息的答案是:因为MacOSX是。。。特别。

假设这是在基于*nix的系统上,这听起来很像ulimit问题(开放文件限制)

检查
ulimit-n
ulimit-Hn
的输出,分别查看软打开文件和硬打开文件的限制。如果它是一个小得可笑的东西,比如1024,你可能想把它放大

见:

还要注意,这些限制是针对每个用户的,而不是全局限制,因此请确保以运行单元测试的用户身份运行此限制



编辑:错误修正。信息的答案是:因为MacOSX是。。。特殊。

您是否尝试过使用
--进程隔离
选项?我假设我只是执行
phpunit——进程隔离
?我不确定我是否做错了,因为当我这样做时,每个测试都会失败:/
Constant LARAVEL\u START已经在项目目录中定义了
Edit
phpunit.xml
,并将值设置为
true
。不幸的是,当我这样做时,每次测试都会出现相同的错误。只是一个快速的错误,您是否100%确定您要查找的是api.php而不是app.php?您是否尝试过使用
--进程隔离
选项?我假设我只是执行
phpunit——进程隔离
?我不确定我是否做错了,因为当我这样做时,每个测试都会失败:/
Constant LARAVEL\u START已经在项目目录中定义了
Edit
phpunit.xml
,并将值设置为
true
。不幸的是,当我这样做时,每次测试都会出现相同的错误。只是一个快速的错误,您是否100%确定您要查找的是api.php而不是app.php?您是否尝试过使用
--进程隔离
选项?我假设我只是执行
phpunit——进程隔离
?我不确定我是否做错了,因为当我这样做时,每个测试都会失败:/
Constant LARAVEL\u START已经在项目目录中定义了
Edit
phpunit.xml
,并将值设置为
true
。不幸的是,当我这样做时,每次测试都会出现相同的错误。只是一个快速的错误,您是否100%确定您要查找的是api.php而不是app.php?您是否尝试过使用
--进程隔离
选项?我假设我只是执行
phpunit——进程隔离
?我不确定我是否做错了,因为当我这样做时,每个测试都会失败:/
Constant LARAVEL\u START已经在项目目录中定义了
Edit
phpunit.xml
,并将值设置为
true
。不幸的是,当我这样做时,每次测试都会出现相同的错误。只是一个快速的错误,你100%确定你要找的是api.php而不是app.php吗?谢谢塔索斯,这是在Mac上,但当我运行
ulimit-n
ulimit-Hn
时,它们都返回
unlimited
,所以看起来这不是问题,很遗憾?只是再检查一下,你是以Malk的身份运行的-运行单元测试的同一个用户?我想我找到了其他东西。MacOSX是。。。特别的。在我的上,(10.6/64位)
ulimit-n
表示2560,而
launchctl limit maxfiles
表示256 |无限。不确定它在服从哪一个,但值得一试。这听起来真的很像