Laravel 5 在CI作业中生成和使用应用程序密钥时出现问题
我正试图让一个带有单元测试的laravel管道工作。在我的CI作业中,我使用数据库凭据复制我的测试环境文件,并使用Laravel 5 在CI作业中生成和使用应用程序密钥时出现问题,laravel-5,phpunit,gitlab-ci,gitlab-ci-runner,Laravel 5,Phpunit,Gitlab Ci,Gitlab Ci Runner,我正试图让一个带有单元测试的laravel管道工作。在我的CI作业中,我使用数据库凭据复制我的测试环境文件,并使用php artisan key:generate生成一个新的应用程序密钥。新密钥的设置没有任何问题,但phpunit测试引发此异常:RuntimeException:未指定应用程序加密密钥。 使用预配置的键,工作正常。甚至当我在工作中产生一个新的 对这种行为有什么看法吗?不得不说,我对CI还比较陌生 我是docker,是gitlab runner的执行者 我最初认为它是一些文件权限的
php artisan key:generate
生成一个新的应用程序密钥。新密钥的设置没有任何问题,但phpunit测试引发此异常:RuntimeException:未指定应用程序加密密钥。
使用预配置的键,工作正常。甚至当我在工作中产生一个新的
对这种行为有什么看法吗?不得不说,我对CI还比较陌生
我是docker,是gitlab runner的执行者
我最初认为它是一些文件权限的东西,但当它使用预配置的密钥时,应该是这样。所以我几乎一无所知。希望有人能帮助我。详情如下
以下是管道的输出:
Downloading artifacts for composer (262)...
Downloading artifacts from coordinator... ok id=262 responseStatus=200 OK token=-A2VMuUf
$ cp .env.testing .env
$ php artisan key:generate
Application key set successfully.
./vendor/bin/phpunit --version
PHPUnit 7.5.13 by Sebastian Bergmann and contributors.
$ ./vendor/bin/phpunit -v -c ./phpunit.xml
PHPUnit 7.5.13 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.19 with Xdebug 2.7.2
Configuration: /builds/####/####/phpunit.xml
.E 2 / 2 (100%)
Time: 234 ms, Memory: 20.00 MB
There was 1 error:
1) Tests\Feature\ExampleTest::testBasicTest
RuntimeException: No application encryption key has been specified.
/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:44
/builds/####/####/vendor/laravel/framework/src/Illuminate/Support/helpers.php:1124
/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:48
/builds/####/####/vendor/laravel/framework/src/Illuminate/Encryption/EncryptionServiceProvider.php:24
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:787
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:667
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:615
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:767
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:925
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:853
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:818
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:667
/builds/####/####/vendor/laravel/framework/src/Illuminate/Container/Container.php:615
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:767
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:215
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:189
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:354
/builds/####/####/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:170
/builds/####/####/tests/Feature/ExampleTest.php:16
工作目录中的文件列表:
drwxrwxrwx 14 root root 4096 Jul 23 11:47 .
drwxrwxrwx 4 root root 4096 Jun 6 09:20 ..
-rw-rw-rw- 1 root root 213 Jul 23 07:41 .editorconfig
-rw-r--r-- 1 php php 792 Jul 23 11:47 .env
-rw-rw-rw- 1 root root 739 Jul 23 07:41 .env.example
-rw-rw-rw- 1 root root 741 Jul 23 11:43 .env.testing
drwxrwxrwx 6 root root 4096 Jul 23 11:47 .git
-rw-rw-rw- 1 root root 111 Jun 6 09:20 .gitattributes
-rw-rw-rw- 1 root root 165 Jul 23 07:41 .gitignore
-rw-rw-rw- 1 root root 2121 Jul 23 11:46 .gitlab-ci.yml
-rw-rw-rw- 1 root root 1255 Jul 23 07:41 .php_cs
-rw-rw-rw- 1 root root 15 Jul 23 07:41 .prettierignore
-rw-rw-rw- 1 root root 120 Jul 23 07:41 .prettierrc
-rw-rw-rw- 1 root root 174 Jul 23 07:41 .styleci.yml
-rw-rw-rw- 1 root root 971 Jun 18 07:56 CONTRIBUTING.md
drwxrwxrwx 6 root root 4096 Jul 23 07:41 app
-rw-rw-rw- 1 root root 1686 Jun 6 09:20 artisan
drwxrwxrwx 3 root root 4096 Jul 23 07:41 bootstrap
-rw-rw-rw- 1 root root 1736 Jul 23 07:41 composer.json
-rw-rw-rw- 1 root root 186367 Jul 23 07:41 composer.lock
drwxrwxrwx 2 root root 4096 Jul 23 07:41 config
drwxrwxrwx 5 root root 4096 Jul 23 07:41 database
-rw-rw-rw- 1 root root 426220 Jul 23 07:41 package-lock.json
-rw-rw-rw- 1 root root 1304 Jul 23 07:41 package.json
-rw-rw-rw- 1 root root 1156 Jul 23 07:41 phpunit.xml
drwxrwxrwx 4 root root 4096 Jul 23 11:01 public
drwxrwxrwx 6 root root 4096 Jul 23 07:41 resources
drwxrwxrwx 2 root root 4096 Jul 23 07:41 routes
-rw-rw-rw- 1 root root 572 Jul 23 07:41 server.php
drwxrwxrwx 5 root root 4096 Jun 6 09:20 storage
drwxrwxrwx 4 root root 4096 Jul 23 07:41 tests
drwxr-xr-x 42 php php 4096 Jul 23 11:46 vendor
-rw-rw-rw- 1 root root 538 Jul 23 07:41 webpack.mix.js
-rw-rw-rw- 1 root root 202971 Jul 23 07:41 yarn.lock
现有.env
-文件的内容:
APP_NAME=####
APP_ENV=testing
APP_KEY=base64:W99w+5JYz8SVGf5sx17gmPR6uoNCtWiEVc+9qu8iGEg=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=####
DB_USERNAME=####
DB_PASSWORD=####
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
问题是phpunit会自动使用测试环境(APP_ENV必须正在测试),如果它存在的话
php artisan key:generate--env=testing
解决了问题
以防其他人遇到这个问题