I’m trying to run integration tests on our CI server using a docker container. Now the documentation states that I only need to have a test-database (called magento_integration_tests
), so I created that one.
But when running my integration test suite, I got the following error:
[PDOException] SQLSTATE[HY000] [2002] No such file or directory
I fixed this by editing dev/tests/integration/etc/install-config-mysql.php
and changing db-host
from localhost
to 127.0.0.1
, but now the error got thrown again, only after a successful installation:
... Write installation date... [Progress: 529 / 529] [SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /backend [Zend_Db_Adapter_Exception] SQLSTATE[HY000] [2002] No such file or directory
I thought this error would have the same cause (with the localhost
/127.0.0.1
-issue described above), so I looked into the code where the exception was thrown (vendor/magento/zendframework1/library/Zend/Db/Adapter/Pdo/Abstract.php:148
) and started var_dumping the configuration to see what was being used:
array(13) { 'host' => string(9) "localhost" 'dbname' => string(13) "[customer]-magento2" 'username' => ...
What’s this? Apparently, at this point in the installation, the configuration of my shop is used to determine some information. But why? Could it be to copy some configuration settings from my actual webshop? I can only speculate for the reasons behind this.
Can anyone explain to me what’s going on here? The documentation never mentions anything about the need for a production database for running integration tests. But in this setup it looks like it does!
Full stack trace:
Exception trace: () at /app/vendor/magento/zendframework1/library/Zend/Db/Adapter/Pdo/Abstract.php:148 Zend_Db_Adapter_Pdo_Abstract->_connect() at /app/vendor/magento/zendframework1/library/Zend/Db/Adapter/Pdo/Mysql.php:111 Zend_Db_Adapter_Pdo_Mysql->_connect() at /app/vendor/magento/framework/DB/Adapter/Pdo/Mysql.php:398 Magento\Framework\DB\Adapter\Pdo\Mysql->_connect() at /app/vendor/magento/zendframework1/library/Zend/Db/Adapter/Abstract.php:460 Zend_Db_Adapter_Abstract->query() at /app/vendor/magento/zendframework1/library/Zend/Db/Adapter/Pdo/Abstract.php:242 Zend_Db_Adapter_Pdo_Abstract->query() at /app/vendor/magento/framework/DB/Adapter/Pdo/Mysql.php:517 Magento\Framework\DB\Adapter\Pdo\Mysql->_query() at /app/vendor/magento/framework/DB/Adapter/Pdo/Mysql.php:580 Magento\Framework\DB\Adapter\Pdo\Mysql->query() at /app/vendor/magento/zendframework1/library/Zend/Db/Adapter/Abstract.php:737 Zend_Db_Adapter_Abstract->fetchAll() at /app/vendor/magento/module-store/Model/ResourceModel/Store.php:173 Magento\Store\Model\ResourceModel\Store->readAllStores() at /app/generated/code/Magento/Store/Model/ResourceModel/Store/Interceptor.php:37 Magento\Store\Model\ResourceModel\Store\Interceptor->readAllStores() at /app/vendor/magento/module-store/Model/Config/Processor/Fallback.php:89 Magento\Store\Model\Config\Processor\Fallback->process() at /app/vendor/magento/module-config/App/Config/Type/System/Reader.php:60 Magento\Config\App\Config\Type\System\Reader->read() at /app/generated/code/Magento/Config/App/Config/Type/System/Reader/Proxy.php:95 Magento\Config\App\Config\Type\System\Reader\Proxy->read() at /app/vendor/magento/module-config/App/Config/Type/System.php:292 Magento\Config\App\Config\Type\System->readData() at /app/vendor/magento/module-config/App/Config/Type/System.php:219 Magento\Config\App\Config\Type\System->loadScopeData() at /app/vendor/magento/module-config/App/Config/Type/System.php:158 Magento\Config\App\Config\Type\System->get() at /app/vendor/magento/framework/App/Config.php:131 Magento\Framework\App\Config->get() at /app/vendor/magento/framework/App/Config.php:80 Magento\Framework\App\Config->getValue() at /app/vendor/magento/module-developer/Model/Logger/Handler/Debug.php:63 Magento\Developer\Model\Logger\Handler\Debug->isHandling() at /app/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:29 Monolog\Handler\AbstractProcessingHandler->handle() at /app/vendor/monolog/monolog/src/Monolog/Logger.php:337 Monolog\Logger->addRecord() at /app/vendor/magento/framework/Logger/Monolog.php:48 Magento\Framework\Logger\Monolog->addRecord() at /app/vendor/monolog/monolog/src/Monolog/Logger.php:616 Monolog\Logger->error() at /app/vendor/magento/module-deploy/Console/Command/App/ConfigImport/Processor.php:151 Magento\Deploy\Console\Command\App\ConfigImport\Processor->execute() at /app/vendor/magento/module-deploy/Console/Command/App/ConfigImportCommand.php:63 Magento\Deploy\Console\Command\App\ConfigImportCommand->execute() at /app/vendor/symfony/console/Command/Command.php:242 Symfony\Component\Console\Command\Command->run() at /app/setup/src/Magento/Setup/Console/Command/InstallCommand.php:151 Magento\Setup\Console\Command\InstallCommand->execute() at /app/vendor/symfony/console/Command/Command.php:242 Symfony\Component\Console\Command\Command->run() at /app/vendor/symfony/console/Application.php:842 Symfony\Component\Console\Application->doRunCommand() at /app/vendor/symfony/console/Application.php:193 Symfony\Component\Console\Application->doRun() at /app/vendor/magento/framework/Console/Cli.php:104 Magento\Framework\Console\Cli->doRun() at /app/vendor/symfony/console/Application.php:117 Symfony\Component\Console\Application->run() at /app/bin/magento:23