Запуск PHPUnit в Intellij с удаленным интерпретатором docker из docker -compose ожидает проект в "/ opt / project" - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть проект PHP symfony, загруженный в IntelliJ (2019.3.2, сборка # IU-193.6015.39) со следующей структурой (опущены ненужные файлы, такие как README, et c):

<project_root>
+- src/
+- tests/
+- vendor/
|  +- autoload.php    
+- .env
+- composer.json
+- composer.lock
+- docker-compose.yml
+- Dockerfile
+- phpunit.xml
+- phpunit-custom.xml

Интерпретатор проекта настроен на использование удаленного docker (Docker для Ma c) с помощью docker -compose, и IntelliJ правильно определяет интерпретатор и отладчик: enter image description here

docker -compose.yml имеет следующую структуру:

version: "2"

services:
    app:
        build: .
        env_file:
            - ./.env
        ports:
            - 8888:80
        volumes:
            - ./:/var/www/
            - .docker/app-dev/nginx/fastcgi-timeouts.conf:/etc/nginx/fastcgi-timeouts.conf
            - .docker/app-dev/php/conf.d/00_opcache.ini:/etc/php/conf.d/00_opcache.ini
            - .docker/app-dev/php/conf.d/30_xdebug.ini:/etc/php/conf.d/30_xdebug.ini
            - .docker/app-dev/php/php-fpm-settings.conf:/etc/php/php-fpm-settings.conf

    db:
        image: mysql:5.6
        environment:
            MYSQL_DATABASE: project_database
            MYSQL_USER: user
            MYSQL_PASSWORD: password
            MYSQL_ROOT_PASSWORD: master_password
        ports:
            - 3306:3306
        volumes:
            - mysql-data:/var/lib/mysql:delegated
            - .docker/db/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf
            - .docker/db/000-structure.sql:/docker-entrypoint-initdb.d/000-structure.sql
            - .docker/db/001-data.sql:/docker-entrypoint-initdb.d/001-data.sql
            - .docker/db/002-test-data.sql:/docker-entrypoint-initdb.d/002-test-data.sql

volumes:
    mysql-data:

Таким образом, проект монтируется в контейнер /var/www. После ускорения проекта с docker-compose up -d он доступен на http://localhost:8888, как и ожидалось. Но запуск модульных тестов через IntelliJ не работает, так как получающаяся команда ожидает конфигурацию в папке /opt/project контейнера:

[docker-compose://[/Users/me/projects/symfony_with_db/docker-compose.yml]:app/]:php /opt/.phpstorm_helpers/phpunit.php --configuration /opt/project/phpunit-custom.xml
Could not read "/opt/project/phpunit-custom.xml".

Process finished with exit code 1

В то время как путь к файлу конфигурации должен быть указан как абсолютный путь в пользовательском интерфейсе. enter image description here

Ввод пути относительно проекта не работает. enter image description here Так что, похоже, нет никакого способа заставить IntelliJ посмотреть на путь, по которому фактически монтируется проект.

1 Ответ

1 голос
/ 21 февраля 2020

У меня похожая проблема, и я не смог найти никакой опции в настройках Intellij, поэтому мне нужно вручную изменить пути в каталоге .idea. Попробуйте найти /opt/project в каталоге .idea и заменить его на /var/www.

В моем случае эта проблема была вызвана плагином Python в моем Intellij Ultimate 2019.3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...