当前位置: 首页 > 知识库问答 >
问题:

运行codeception测试时出现令牌不匹配错误

盖辉
2023-03-14

当我运行codeception测试用例时,我的日志文件中出现了这个错误。如何解决这个问题?

代码:

 public function testUpdatePhone(FunctionalTester $I)
 {
        $I->wantTo('Test update phone');
        $I->sendPUT('/admin/phone/100', [
            'label' => 'My new label'
        ]);
        $I->see('Phone Number updated successfully.');
 }

命令:

./vendor/bin/codecept run tests/functional/AdminPhoneTestCest.php:testUpdatePhone

日志文件中的错误:

[2015-06-06 05:34:02]本地的。错误:异常'照明\会话\令牌错配异常'在 /var/www/xxxx/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:46

提前感谢:)

共有2个答案

方恺
2023-03-14

如果您使用的是phantomjs,您需要确保您的设置中有clear_cookies:true,因为phantomjs似乎不支持正常的重启:true,因此它使用了在后续测试中无效的相同令牌。

贝自怡
2023-03-14

通过添加中间件方法解决了此问题,如下所示

public function handle($request, Closure $next)
{
 if ($request->header('user-agent') == 'Symfony2 BrowserKit') {
  return $next($request);
 }

 throw new TokenMismatchException;
}

参考:https://laracasts.com/discuss/channels/general-discussion/latest-v5-laravelframework-csrfmiddleware-changes-broke-codeception-functional-tests

 类似资料:
  • 我使用的是高级的Yii2模板,当我在构建后运行测试时,我遇到了以下问题。 我不知道名字空间是什么,所以请你向我解释一下它是什么。 错误 codeception.yml

  • 问题内容: 我正在使用mocha-phantomjs设置进行单元测试。我有以下package.json脚本来运行测试。 在浏览器中可以正常运行。当我在cmd中运行命令时,测试运行正常,但同时也会出现以下错误 请任何人告诉我如何解决此错误。 问题答案: 当我在cmd中运行命令npm test时,测试运行正常 不,他们不是。您有6个失败的测试。的退出代码等于测试失败的次数。直接运行,看看有什么问题。意

  • 我写这篇文章是因为yii2官方文档仍然不完整,codeception文档本身指的是yii2官方文档..:)。 我有一些问题: 在我的yii2应用程序根目录中有一个目录“tests/codeception”,这意味着我的项目中已经安装了codeception 在vendor/yiisoft中还有另一个codeception目录“yii2 codeception”,它是什么 文档中说要创建yii2_b

  • 我试图用codeception运行一些测试,当我尝试测试表单时,总是失败,我不知道为什么。和其他人一样,他们都通过了。测试代码如下: 当我用命令运行测试时/vendor/bin/run-vvv--html--debug我有以下日志: 接受。一套yml就是这个: 演员:验收员 模块: 什么是错的?我想要的是测试表格,看看下一页写的假期,为什么一些测试通过了,一个简单的表格没有?。你能帮我个忙吗?

  • 我刚刚添加了测试单元,当我使用运行它时,我得到了错误,测试将失败。但是,当我运行时,一切看起来都很好,我不知道发生了什么黑客。我认为当我使用运行时,无法识别部分文件,并将抛出新的错误。 这是我的代码https://github.com/rohmanhm/unobuilder/tree/test 下面是错误消息。 rohmanhm~/desktop/code/works/unobuilder tes

  • 问题内容: 当我尝试在Chrome中运行测试时出现此错误: 初始化方法AutomationUsingSelenium.SmuladorChrome.MyTestInitialize引发异常。OpenQA.Selenium.DriverServiceNotFoundException:OpenQA.Selenium.DriverServiceNotFoundException 原因是什么? 问题答案