Я использую код для запуска приемочных тестов для приложения laravel. Одна из проблем, с которыми я столкнулась, заключается в том, что мои тесты входа в систему начинают сбой, когда страница входа в систему кэшируется, и, я думаю, я автоматически вхожу в систему. Я думаю, что это так, потому что мои тесты начинают проходить снова, когда я очищаю кеш, и они, как правило, начинают сбой без моего изменения тестов или кода приложения вообще.Очистка кеша для приложения laravel 4 до тестов на кодирование
Вот тест Войти под вопросом, теперь извлечены в вспомогательный метод
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
Так я застрял. Благодаря!
Вы также можете использовать модуль под названием FileSystem: http://codeception.com/docs/modules/Filesystem Просто включите его в файл acceptance.suite.yml: 'модулей: включено: - Cli' Затем вы можете написать в своем тесте что-то вроде: '$ I-> cleanDir ('app/storage/cache');' –