laravel 单元测试 phpunit 运行报错 RuntimeException: No application encryption key has been specified 解决

刚安装完laravel7,想着顺带装一下phpunit 折腾了好久后开发现 laravel 自带 phpunit 

我这里说一下在windows下安装PHPUnit

建立一个目录,例如 C:\bin

将C:\bin 附加到 PATH 环境变量中

下载 http://phar.phpunit.cn/phpunit-6.2.phar 并将文件保存到 C:\bin\phpunit.phar

C:\Users\username> cd C:\bin
C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
C:\bin> exit

新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit:

C:\Users\username> phpunit --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

安装成功

laravel 自带phpunit 我们需要自己配置一下环境变量
目录地址:F:\WWW\项目目录\vendor\bin

配置好之后测试,出现提示报错:

RuntimeException: No application encryption key has been specified

解决方法:在官方文档的 测试相关 -> 快速入门 里的 环境 小节里

phpunit 进行测试时,laravel 会根据 phpunit.xml 里设定的环境变量来设置程序的环境,默认是 testing,下面是默认的 phpunit.xml 的关于环境变量设定的部分代码:

<php>
  #phpunit.xml 文件在项目根目录
  #这里只需要把value的值替换成 .env配置文件中的 APP_ENV=local 的值就可以了 <env name="APP_ENV" value="testing"/> <env name="CACHE_DRIVER" value="array"/> <env name="SESSION_DRIVER" value="array"/> <env name="QUEUE_DRIVER" value="sync"/> </php>

可以看到 APP_ENV 那一行的 value 是 testing。要解决这个 No application encryption key has been specified 报错,只需要根据自己的运行 phpunit 的环境来设置相应的 APP_ENV 值就行了。

 

posted @ 2020-07-08 17:21  郭德纲又打人了嘿  阅读(426)  评论(0编辑  收藏  举报