当我为我的应用程序运行单元测试时,首先测试成功,然后大约100,由于PDOException(连接太多),测试开始失败。我已经搜索过这个问题,但是无法解决它。
我的配置如下:
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "bootstrap.php.cache" >
如果我将processIsolation更改为&#34; true&#34;,则所有测试都会生成错误(E):
Caused by ErrorException: unserialize(): Error at offset 0 of 79 bytes
为此,我尝试设置&#34; detect_unicode = Off&#34;在php.ini文件中。
如果我以较小的批次进行测试,例如使用&#34; - 组合某些内容&#34;,所有测试都是成功的。
有人可以帮我解决一次运行所有测试的问题吗?我真的想摆脱PDOException。
提前致谢!
答案 0 :(得分:1)
您应该增加数据库服务器中的最大并发连接数。
如果您使用的是MySQL,请编辑/etc/mysql/my.cnf
并将max_connections
参数设置为您需要的并发连接数。然后重启MySQL服务器。
请记住:理论上,物理极限非常高。但是,如果您的查询导致高CPU负载或内存消耗,您的数据库服务器可能会耗尽其他进程所需的资源。这意味着,您可能会耗尽内存,或者您的系统可能会过载。
答案 1 :(得分:1)
对于遇到相同问题的人,这里有更具体的步骤来配置my.cnf
文件。
如果您确定自己位于正确的my.cnf
文件中,请将max_connections = 500
(默认为151)添加到[mysqld]
中的my.cnf
部分。不要把它放在[client]
部分。
要确保您位于右侧my.cnf
,如果您从Homebrew或XAMMPP安装了多个mysqld,请使用mysqld
为XAMMPP找到正确的/Applications/XAMPP/xamppfiles/sbin/mysqld --verbose --help | grep -A 1 "Default options"
,您将获得一些东西像这样:
Default options are read from the following files in the given order:
/Applications/XAMPP/xamppfiles/etc/xampp/my.cnf /Applications/XAMPP/xamppfiles/etc/my.cnf ~/.my.cnf
通常是/Applications/XAMPP/xamppfiles/etc/my.cnf
。