Я настроил среду docker-compose
с Redis, MySQL, php-fpm и веб-сервером Nginx. Вот соответствующие части docker-compose.yml
:
webserver:
image: nginx:alpine
container_name: webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/webserver/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "8082:80"
php-fpm:
build: phpdocker/php-fpm
container_name: php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.3/fpm/conf.d/99-overrides.ini
А вот структура указанной сборки php-fpm
:
FROM phpdockerio/php73-fpm:latest
WORKDIR "/application"
# Fix debconf warnings upon build
ARG DEBIAN_FRONTEND=noninteractive
# Install selected extensions and other stuff
RUN apt-get update \
&& apt-get -y --no-install-recommends install php7.3-mysql php-redis php-xdebug \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
# Install git
RUN apt-get update \
&& apt-get -y install git \
&& apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
Вы можете распознать структуру или значения по умолчанию; Я создал его с помощью phpdocker.
Все мои контейнеры строятся хорошо, поэтому моим следующим шагом было настроить PHPStorm для запуска тестов из контейнера Docker php-fpm. Я правильно настроил удаленный интерпретатор и путь PHPUnit, провел базовый тест и получил этот (странный) результат:
docker-compose://[/Users/christian/projects/application/docker-compose.yml]:php-fpm/php /application/src/app/vendor/bin/phpunit --configuration /application/phpunit.xml --filter "/(::testPagesReturnExpectedStatus)( .*)?$/" Tests\Smoke\SmokeTest /application/tests/php/Smoke/SmokeTest.php --teamcity
Starting application__phpstorm_helpers_1 ...
Recreating php-fpm ...
Attaching to php-fpm
php-fpm | PHPUnit 7.4.3 by Sebastian Bergmann and contributors.
php-fpm |
php-fpm | Runtime: PHP 7.3.6-1+ubuntu18.04.1+deb.sury.org+1 with Xdebug 2.7.1
php-fpm | Configuration: /application/phpunit.xml
php-fpm |
php-fpm |
php-fpm |
php-fpm | fivefour-php-fpm |
php-fpm | Empty test suite.
php-fpm |
php-fpm |
php-fpm | Time: 1.59 seconds, Memory: 6.00 MB
php-fpm |
php-fpm |
php-fpm | ERRORS!
php-fpm | Tests: 9, Assertions: 0, Errors: 1.
php-fpm exited with code 2
Aborting on container exit...
Process finished with exit code 2
Я сразу заметил две вещи: обычно, когда в тесте есть ошибки, PHPUnit выводит эти ошибки. Здесь я ничего не получаю. Во-вторых, я получаю сообщение «Пустой набор тестов», несмотря на то, что парой строк ниже выводится «Тесты: 9, Утверждения: 0, Ошибки: 1», что не похоже на пустой тест. люкс для меня.
Короче говоря, я совершенно не понимаю, что происходит или даже как это устранить! Если у кого-то есть понимание, я был бы очень признателен.
php /application/src/app/vendor/bin/phpunit blah-blah
) вручную с помощьюdocker-compose run
(илиdocker-compose exec
, в зависимости от того, как вы настроили удаленный интерпретатор). - person Eugene Morozov   schedule 14.06.2019--teamcity
, который добавляет PHPUnit. Наконец-то я вижу свою ошибку! Но кажется непрактичным всякий раз, когда мои тесты терпят неудачу, повторно запускать тесты из командной строки и удалять этот аргумент, чтобы увидеть вывод ошибки. - person CGriffin   schedule 14.06.2019Empty test suite
все еще существует без аргумента--teamcity
? Из того, что я вижу, ошибки по-прежнему должны выводиться даже с аргументом, поэтому я предполагаю, что проблема вызвана чем-то другим: prntscr.com/o2tnnt - person Eugene Morozov   schedule 17.06.2019