多次测试后 phpunit 失败

标签 php laravel phpunit

我从 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/

相关文章:

php - 如何从Mysql数据中获取文件夹数量

laravel - 在 Eloquent 中获取给定列的值

testing - 在 Shopware 6.3.5.2 的生产模板中运行所有测试

php - EcomDev Phpunit 测试在执行期间调用了两次

php - mock 首先抛出然后在第二次调用时返回值

php - 将随机行从一个 MySQL 表复制到另一个具有不同模式的 MySQL 表

php - 如何获取每行mysql的总和

php - Mysql Error updating record syntax to use near 't suit to the product which is described above' )' 在第 1 行

php - 如何通过路由直接传递变量

php - laravel 5.4 crud 中的更新方法是什么?