PhpUnit не выполняется через удаленный интерпретатор PhpStorm в Docker

У меня проблема в том, что PhpUnit не работает (правильно происходит что-то делает), когда просто нажимаешь «Выполнить» (Shift + F10 в Windows) в PhpStorm.


Сначала последовали учебники/руководства по установке:

Итак, теперь в значительной степени есть рабочая установка, за исключением того, что это не так.

Testing started at 15:21 ...
[docker://IMAGE_NAME:latest/]:php bin/.phpunit/phpunit-6.5/phpunit --configuration /var/www/html/phpunit.xml.dist --teamcity
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.

Testing Project Test Suite

Fatal error: Uncaught PDOException: SQLSTATE[HYT00]: [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired in /var/www/html/src/Legacy/Connection/MssqlConnection.php on line 178

PDOException: SQLSTATE[HYT00]: [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired in /var/www/html/src/Legacy/Connection/MssqlConnection.php on line 178

Call Stack:
    0.0003     393408   1. {main}() /var/www/html/bin/.phpunit/phpunit-6.5/phpunit:0
    0.0571     923544   2. PHPUnit\TextUI\Command::main() /var/www/html/bin/.phpunit/phpunit-6.5/phpunit:17
    0.0571     923656   3. Symfony\Bridge\PhpUnit\Legacy\CommandForV6->run() /var/www/html/bin/.phpunit/phpunit-6.5/src/TextUI/Command.php:148
    0.2019    4269152   4. Symfony\Bridge\PhpUnit\Legacy\TestRunnerForV6->doRun() /var/www/html/bin/.phpunit/phpunit-6.5/src/TextUI/Command.php:195
    0.2158    4697272   5. PHPUnit\Framework\TestSuite->run() /var/www/html/bin/.phpunit/phpunit-6.5/src/TextUI/TestRunner.php:545
    0.2181    4702968   6. PHPUnit\Framework\TestResult->startTestSuite() /var/www/html/bin/.phpunit/phpunit-6.5/src/Framework/TestSuite.php:689
    0.2233    4717824   7. App\Tests\Helper\DeleteDBOnceListener->startTestSuite() /var/www/html/bin/.phpunit/phpunit-6.5/src/Framework/TestResult.php:368
    0.2270    4739216   8. App\Legacy\Connection\MssqlConnection->databaseExists() /var/www/html/tests/Helper/DeleteDBOnceListener.php:55
    0.2270    4739216   9. App\Legacy\Connection\MssqlConnection->findDbFromDSN() /var/www/html/src/Legacy/Connection/MssqlConnection.php:38
    0.2271    4740104  10. PDO->__construct() /var/www/html/src/Legacy/Connection/MssqlConnection.php:178


Process finished with exit code 255

Очевидно, это читается как: невозможно подключиться к БД. Но!

Если я войду в экземпляр Docker, а затем запущу команду, она сработает! Команда:

php bin/.phpunit/phpunit-6.5/phpunit --configuration /var/www/html/phpunit.xml.dist

Генерирует вывод:

user@hash:/var/www/html# php bin/.phpunit/phpunit-6.5/phpunit --configuration /var/www/html/phpunit.xml.dist
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.

Testing Project Test Suite
Dropping current database...
.Creating database..
................................................................ 65 / 80 ( 81%)
...............                                                   80 / 80 (100%)

Time: 3.25 minutes, Memory: 56.12MB

OK (80 tests, 336 assertions)

Так почему же при выполнении с помощью «Выполнить» это не удается при выполнении из PhpStorm? Я пропустил настройку?

Что-то, что вы, вероятно, уже настроили/попробовали, но настроили ли вы mySQL так, чтобы он принимал удаленные подключения?

Alex 01.02.2019 22:37

Да, (кстати, в данном случае это MS SQL) база данных работает в собственной настройке Docker. В данном случае это «дубликат живого». Это настройка для разработчиков, которая никогда не была полностью настроена, поэтому я сейчас пытаюсь это исправить. Текущий метод тестирования заключается в запуске команд путем входа в экземпляры (например, мой успешный бит в вопросе) вместо «при изменении» или «при запуске» непосредственно в PhpStorm.

rkeet 02.02.2019 00:07

У меня такая же проблема. Вы нашли решение для запуска из PHPStorm?

keyboardSmasher 23.05.2019 19:28

@keyboardSmasher Нет, я этого не делал. Использовали Phpunit изнутри экземпляров Docker. Этот вопрос остается открытым и по сей день.

rkeet 23.05.2019 20:03

@rkeet — вы поднимали этот вопрос на форумах PhpStorm? Я думаю, проблема может быть как-то связана с тем фактом, что он порождает новый контейнер, а не использует существующий... но я еще не добрался до конца этой кроличьей норы.

mikey 18.09.2019 08:46

@mikeyjk не конкретно этот вопрос нет. Есть и другие вопросы, касающиеся той же или похожей функциональности, которая уже присутствует в их Youtrack, глянь сюда.

rkeet 18.09.2019 09:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
7
6
1 102
0

Другие вопросы по теме