我从 laravel 网站的命令行运行 phpunit。
输出(第一行)是:
.................FFFFFFFFFFFFFFFFF.FFFFFFFFF.FFFFFFFFFFFFFFFFF. 63 / 105 ( 60%)
但是,所有这些测试都可以单独运行。当我一起运行它们时,它们中的大多数都失败了。
所有错误均显示代码 500,预期为 200。
例子:
<pre>
not ok 99 - Failure: TeamTest::testApiShow
---
message: 'A GET request to ''http://localhost/api/v1/teams/1'' failed. Got a 500 code instead.'
severity: fail
</pre>
详细信息
Error occurs in line 47 of [..]vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php
line 47: return new PDO($dsn, $username, $password, $options);
完整输出:http://pastebin.com/bt29w7Lz phpunit 的配置:http://pastebin.com/pBT59aXM
最佳答案
可能是打开的数据库连接太多了。 PostgreSQL 和 MySQL 都对可用连接数有限制,而 phpUnit 既不池化连接,也不在使用后将连接返回池。
我经常需要将我的 Jenkins(单元测试)服务器上 PostgreSQL 的最大连接数增加到 500 或更多才能运行完整的单元测试套件。
在这里查看更多:
https://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html
https://wiki.postgresql.org/wiki/Number_Of_Database_Connections
关于多次测试后 phpunit 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31888944/