【问题标题】:PHPUnit testing in PhpStorm token mismatch exceptionPhpStorm 令牌不匹配异常中的 PHPUnit 测试
【发布时间】:2018-11-21 09:14:45
【问题描述】:

我正在通过 PhpStorm 内置测试环境Laravel 项目进行单元测试。我收到令牌不匹配异常

所有配置都是正确的,并且工作正常。突然出现了这个错误。我尝试使用终端,它工作正常。我正在 Vagrant 下开发这个项目。

我能做些什么来解决这个问题?

我搜索了一下,发现如下更改 Laravel 的 VerifyCsrfToken 可以解决这个问题。但我也需要将其设为默认值。 $except = ['/*']

【问题讨论】:

  • 在您的测试中尝试Disabling Middleware。我不会添加$except = ['/*'],因为它会为所有路由禁用它......或者你可以通过调用$this->call('POST', '/your-route', ['_token' => csrf_token(), ...]);传递csrf令牌
  • @LazyOne - 谢谢它的工作

标签: laravel phpunit phpstorm


【解决方案1】:

我遇到了同样的问题,我通过将所选“测试框架”中的“默认配置文件”选项设置为项目根目录中的 phpunit.xml 来修复它。 PHPStorm 似乎默认使用“本地”phpunit 配置。我在检查 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken 中的 runningUnitTests() 方法时想到了这个想法;

并且看到 dat APP_ENV 是“本地”,而不是我的 PHPunit.xml 中指定的“测试”

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    我在测试课中使用了 WithoutMiddleware 特征。它工作得很好。我也尝试了@Lijubadr 的回复。它也奏效了。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2017-10-24
      • 2017-07-03
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多