我使用PHPUnit来对Laravel 5.4应用程序进行多次测试。
超过100个测试使用数据库查询。我使用 \ Illuminate \ Foundation \ Testing \ DatabaseMigrations 类在每次测试之前重置和迁移数据库(因此对于测试文件中的每个方法)。
但是当我运行 phpunit 命令时,它会显示一个由于max_connection被删除而导致的错误。
我无法在服务器上增加max_connection限制。我尝试对phpunit使用 - process-isolation 参数,但它会增加测试的持续时间:15分钟而不是2分钟。
我搜索了很多时间来设置进程数限制,但除了 - process-isolation 参数之外我什么也没找到。
您知道为PHPUnit设置进程号的方法吗?或者是一种在测试后删除数据库连接的方法?
答案 0 :(得分:0)
我找到了解决方案。
我将此方法添加到 tests / TestCase.php 文件中:
public function tearDown() {
\DB::connection()->setPdo(null);
}
通过使用此代码,您应该注意,因为父tearDown()方法将不会运行。您可以添加以下行来执行此操作:
parent::tearDown();
如果通过添加此行,问题仍然存在,则应分析父tearDown()代码以获取导致问题的代码。