laravel 앱에 대한 승인 테스트를 실행하는 데 codeception을 사용하고 있습니다. 내가 겪어 본 한 가지 문제는 로그인 페이지가 캐시 될 때 로그인 테스트가 실패하기 시작하고 자동으로 로그인되는 것입니다. 캐시를 지울 때 테스트가 다시 시작되기 때문에 일반적으로 테스트 또는 응용 프로그램 코드를 변경하지 않고 일반적으로 오류가 발생하기 때문에이 경우라고 생각합니다.코드 테스트 전에 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');
}
테스트가 실패 할 때마다 나는 주기적으로 캐시를 삭제 한 적이 있지만 그것은 지루한 해지고로 추출 문제의 로그인 테스트가 있습니다. 나에게 캐시를 지우고 모든 테스트에서 함수를 호출하는 도우미를 등록 할 수 있기를 원합니다.
public function clearCache($I) {
$cache = $this->getModule('Cache');
$cache->flush();
}
이 어떤 문서
here에 의해 제안 된 것으로 보인다
,하지만 난 오류 "모듈 캐시 할 수 없습니다 AcceptanceHelper.php에 다음과 같은 기능을 here을 제안 나는 도우미로 기능을 추출 연결된 ". 내가 config 파일에서 MySQL의 권한을 부여 할 필요가 거라고 생각
SQLSTATE[28000] [1045] Access denied for user 'stephen'@'localhost' (using password: NO)
: 나는 Laravel4 모듈을 필요로 같은 내 acceptance.suite.yml 파일 만이 행운에 하나 내가이 오류를받은 추가 있도록 보였다 , 그러나 그것도 작동하지 않는 것 같습니다. 여기 내 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
그래서 내가 붙어있어. 감사!
는 또한 모듈라는 파일 시스템을 사용할 수 있습니다 그런 다음 테스트에 다음과 같이 쓸 수 있습니다 : '$ I-> cleanDir ('app/storage/cache');' –