gpt4 book ai didi

php - 在代码测试之前清除 laravel 4 应用程序的缓存

转载 作者:行者123 更新时间:2023-12-05 03:14:04 25 4
gpt4 key购买 nike

我正在使用 codeception 为 Laravel 应用运行验收测试。我遇到的一个问题是,当登录页面被缓存时,我的登录测试开始失败,我想,我正在自动登录。我认为是这种情况,因为当我清除缓存时我的测试再次开始通过,并且它们通常会在我根本没有更改测试或应用程序代码的情况下开始失败。

这里是有问题的登录测试,现在提取到辅助方法中

public function login($username, $password, $I) {
$I->amOnPage('users/login');
$I->fillField('email', $username);
$I->fillField('password', $password);
$I->click('Login');
$I->amOnPage('admin/');
$I->see('Welcome');
}

每当测试失败时,我都会定期清除缓存,但这变得很乏味。我希望能够注册一个助手来为我清除缓存,并在我的所有测试中调用该函数。我按照建议将函数提取到助手中 here在 AcceptanceHelper.php 中使用以下函数:

  public function clearCache($I) {
$cache = $this->getModule('Cache');
$cache->flush();
}

这似乎是文档 here 所建议的,但我收到错误消息“无法连接模块缓存”。看起来我需要 Laravel4 模块,所以我将它添加到我的 acceptance.suite.yml 文件中,但运气不好,我收到了这个错误:

SQLSTATE[28000] [1045] Access denied for user 'stephen'@'localhost' (using password: NO)  

我以为我需要在配置文件中授权 mysql,但这似乎也不起作用。这是我的 acceptance.suite.yml 文件:

class_name: AcceptanceTester
modules:
enabled:
- PhpBrowser
- AcceptanceHelper
- Laravel4
config:
PhpBrowser:
url: 'http://104.131.29.69:8000/'
Laravel4:
user: 'root'
password: 'pAsSwOrD'

最后我读了this回答似乎我实际上不应该在配置文件中包含 Laravel4,我的辅助函数应该看起来更像这样:

public function clearCache($I) {
$L = $I->getLaravel4();
Cache::flush();
}

但我只是得到了这个错误:

Class 'Codeception\Module\Cache' not found

所以我卡住了。谢谢!

最佳答案

Artisan::call('cache:clear');

是更好的方法。

关于php - 在代码测试之前清除 laravel 4 应用程序的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27456241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com