Laravel kehrt beim Überprüfen der Umgebung immer lokal zurück, auch wenn Tests ausgeführt werdenPhp

PHP-Programmierer chatten hier
Guest
 Laravel kehrt beim Überprüfen der Umgebung immer lokal zurück, auch wenn Tests ausgeführt werden

Post by Guest »

Ich habe eine Docker-basierte Laravel-App, hier ist die Docker-Compose-Datei:

Code: Select all

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:

Wenn ich meine Tests ausführe, z. B. docker-compose exec app ./vendor/bin/pest tests/Feature/ReturnsTest.ph, werden sie in meiner lokalen Datenbank ausgeführt ist MySQL und verwendet kein SQLite.
Ich habe Folgendes zu einem meiner Tests hinzugefügt, um zu überprüfen, in welcher Umgebung die Tests ausgeführt werden:

Code: Select all

dd(App::environment());
und es stellt sich heraus, dass es lokal zurückgibt statt zu testen.
Ich habe die PHP-Einheit nicht berührt. xml-Datei, und ich habe bereits überprüft, dass sie Teil des Containers ist (

Code: Select all

docker-compose exec app cat /var/www/phpunit.xml
). Hier ist der Inhalt dieser Datei:

Code: Select all

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


./tests/Unit


./tests/Feature




./app














Einer der Vorschläge, die ich online gefunden habe, war, .env.testing mit den folgenden Elementen zu erstellen:

Code: Select all

APP_ENV=testing
DB_CONNECTION=sqlite
DB_DATABASE=:memory:
aber das hat überhaupt keinen Unterschied gemacht.
Irgendeine Idee, was ich übersehe?
Vielen Dank
Update 1
Ausgabe von Docker-Compose Exec App PHP Artisan über hinzugefügt:

Code: Select all

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post