У меня проблема в том, что 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? Я пропустил настройку?
Да, (кстати, в данном случае это MS SQL) база данных работает в собственной настройке Docker. В данном случае это «дубликат живого». Это настройка для разработчиков, которая никогда не была полностью настроена, поэтому я сейчас пытаюсь это исправить. Текущий метод тестирования заключается в запуске команд путем входа в экземпляры (например, мой успешный бит в вопросе) вместо «при изменении» или «при запуске» непосредственно в PhpStorm.
У меня такая же проблема. Вы нашли решение для запуска из PHPStorm?
@keyboardSmasher Нет, я этого не делал. Использовали Phpunit изнутри экземпляров Docker. Этот вопрос остается открытым и по сей день.
@rkeet — вы поднимали этот вопрос на форумах PhpStorm? Я думаю, проблема может быть как-то связана с тем фактом, что он порождает новый контейнер, а не использует существующий... но я еще не добрался до конца этой кроличьей норы.
@mikeyjk не конкретно этот вопрос нет. Есть и другие вопросы, касающиеся той же или похожей функциональности, которая уже присутствует в их Youtrack, глянь сюда.




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