You have to set up your interpreter configuration in your PhpStorm to use your container interpreter. open PhpStorm -> settings -> PHP -> CLI Interpreter -> create new one from docker, vagrant.... -> choose "Docker compose" -> select the service name (laravel.test) -> click ok -> after that you will see the option "Lifecycle" -> choose "Connect to existing container. when you run your tests make sure the sail is up.
Mar 19, 2023
4
Level 6
Can't run tests in Laravel Sail from PhpStorm
I selected phpunit.xml configuration inside PhpStorm with remote PHP from inside docker. PHP binary is validated successfully, but when I run tests (from PhpStorm) I get following error:
Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: Name or service not known (Connection: mysql, SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:83
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:184
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1177
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1213
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:486
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:414
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:753
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:899
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:878
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:722
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:405
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:124
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:74
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:71
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:67
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:40
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php:37
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php:58
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/symfony/console/Application.php:1040
/opt/project/vendor/symfony/console/Application.php:314
/opt/project/vendor/symfony/console/Application.php:168
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Application.php:162
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:381
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:296
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:481
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:80
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:73
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:23
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:125
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:94
Caused by
PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: Name or service not known
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:83
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:184
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1177
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1213
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:486
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:414
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:753
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:899
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:878
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:722
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:405
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:124
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:74
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:71
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:67
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:40
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php:37
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php:58
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/symfony/console/Application.php:1040
/opt/project/vendor/symfony/console/Application.php:314
/opt/project/vendor/symfony/console/Application.php:168
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Application.php:162
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:381
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:296
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:481
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:80
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:73
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:23
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:125
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:94
Caused by
PDOException: PDO::__construct(): php_network_getaddresses: getaddrinfo for mysql failed: Name or service not known
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:83
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/MySqlConnector.php:24
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connectors/ConnectionFactory.php:184
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1177
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:1213
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:486
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:414
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:753
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:899
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:878
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:722
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Connection.php:405
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:124
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Schema/MySqlBuilder.php:74
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:71
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/WipeCommand.php:48
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:67
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Concerns/CallsCommands.php:40
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Task.php:37
/opt/project/vendor/laravel/framework/src/Illuminate/Console/View/Components/Factory.php:58
/opt/project/vendor/laravel/framework/src/Illuminate/Database/Console/Migrations/FreshCommand.php:44
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Util.php:41
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93
/opt/project/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:35
/opt/project/vendor/laravel/framework/src/Illuminate/Container/Container.php:661
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:194
/opt/project/vendor/symfony/console/Command/Command.php:312
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Command.php:163
/opt/project/vendor/symfony/console/Application.php:1040
/opt/project/vendor/symfony/console/Application.php:314
/opt/project/vendor/symfony/console/Application.php:168
/opt/project/vendor/laravel/framework/src/Illuminate/Console/Application.php:162
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:381
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:296
/opt/project/vendor/laravel/framework/src/Illuminate/Testing/PendingCommand.php:481
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithConsole.php:80
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:73
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/RefreshDatabase.php:23
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:125
/opt/project/vendor/laravel/framework/src/Illuminate/Foundation/Testing/TestCase.php:94
However when I run sail artisan test from terminal everything works. So what is the way to run tests inside Laravel Sail from PhpStorm? What am I doing wrong?
Level 1
3 likes
Please or to participate in this conversation.