Laravel всегда возвращает локальный код при проверке среды, даже когда выполняются тесты.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel всегда возвращает локальный код при проверке среды, даже когда выполняются тесты.

Сообщение Anonymous »

У меня есть Dockerized Laravel-приложение, вот файл Docker Compose:
version: "3.9"
services:
app:
build:
context: ./
dockerfile: Dockerfile
image: dmc
container_name: dmc-app
restart: unless-stopped
working_dir: /var/www/
# load development specific .env file
env_file:
- ./.env.development
depends_on:
- db
- nginx
volumes:
- ./:/var/www/
- ./docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
- ./docker/php/conf.d/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.ini
- ./images:/public/images
expose:
- "9003"
networks:
- dmc-net

nginx:
image: nginx:1.23.2-alpine
container_name: dmc-nginx
restart: unless-stopped
ports:
- "8000:80"
volumes:
- ./:/var/www
- ./docker-compose/nginx:/etc/nginx/conf.d
networks:
- dmc-net

db:
image: mysql:8.0.31
container_name: dmc-db
restart: unless-stopped
ports:
- "3307:3306"
# use the variables declared in .env file
environment:
MYSQL_HOST: ${DB_HOST}
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: abcd1234
MYSQL_USER: ${DB_USERNAME}
SERVICE_TAGS: development
SERVICE_NAME: mysql
volumes:
- ./docker-compose/mysql:/docker-entrypoint-initdb.d
- mysql-data:/var/lib/mysql
networks:
- dmc-net

networks:
dmc-net:
driver: bridge

volumes:
mysql-data:


При запуске моих тестов, т. е. приложения docker-compose exec ./vendor/bin/pesttests/Feature/ReturnsTest.ph, они запускаются в моей локальной базе данных, которая это MySQL и не используется SQLite.
Я добавил следующее в один из своих тестов, чтобы проверить, в какой среде он выполняет тесты:
dd(App::environment());

и оказывается, что он возвращает локальный вместо тестового.
Я не трогал phpunit. xml, и я уже проверил, это часть контейнера (docker-compose exec app cat /var/www/phpunit.xml). Вот содержимое этого файла:

xsi:noNamespaceSchemaLocation="./vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="vendor/autoload.php"
colors="true"
>


./tests/Unit


./tests/Feature




./app















Одно из предложений, которые я нашел в Интернете, заключалось в создании .env.testing со следующими элементами:
APP_ENV=testing
DB_CONNECTION=sqlite
DB_DATABASE=:memory:

но это не имело никакого значения.
Есть идеи, чего мне не хватает?
Спасибо
Обновление 1
Вывод приложения docker-compose exec php artisan о добавлен:
docker-compose exec app php artisan about  ✔  8s 
Xdebug: [Step Debug] Could not connect to debugging client. Tried: host.docker.internal:9003 (through xdebug.client_host/xdebug.client_port).

Environment ...............................................................................................
Application Name ......................................................................... DunderMifflin-be
Laravel Version .................................................................................... 9.40.1
PHP Version ........................................................................................ 8.1.12
Composer Version .................................................................................... 2.8.4
Environment ......................................................................................... local
Debug Mode ........................................................................................ ENABLED
URL ............................................................................................. localhost
Maintenance Mode ...................................................................................... OFF

Cache .....................................................................................................
Config ......................................................................................... NOT CACHED
Events ......................................................................................... NOT CACHED
Routes ......................................................................................... NOT CACHED
Views .............................................................................................. CACHED

Drivers ...................................................................................................
Broadcasting .......................................................................................... log
Cache ................................................................................................ file
Database ............................................................................................ mysql
Logs .................................................... stack / debug, info, warning, critical, emergency
Mail ................................................................................................. smtp
Queue ............................................................................................ database
Session .............................................................................................. file


Подробнее здесь: https://stackoverflow.com/questions/793 ... nment-even
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»