我刚刚开始使用codeception,我遇到的问题是登录脚本仅针对单个测试运行。因此,对于用户必须登录的所有其他测试都会失败。
接受\核心\ LoginCept:
$I = new AcceptanceTester($scenario);
$I->wantTo('login as a Admin');
$I->amOnPage('/login');
$I->fillField('email', 'test@gmail.com');
$I->fillField('password', 'test123');
$I->click('input[type=submit]');
$I->seeCurrentUrlEquals('/dashboard');
$I->see('Dashboard');
接受\核心\ CreateUserCept:
$I = new AcceptanceTester($scenario);
$I->wantTo('Create a new user');
$I->amOnPage('/users/create');
$I->see('Please fill in the form to create a new user');
LoginCept测试已通过,但CreateUserCept失败,并在用户重定向到登录页面时出错。
我的问题是我必须为每个测试登录吗?或者它是否像普通的基于Web的用户一样,用户从会话中获得授权?
其次我认为必须有一个优先级系统,首先调用logincept,然后调用CreateUserCept和其他Admin Cepts。
答案 0 :(得分:0)
是的,每个测试都应该是独立的,因此与浏览器会话不同,不会持久化。如果您确实需要这样做,可以按照codeception website under "Session Snapshots"上的建议解决方案。