У меня одна и та же ошибка каждый раз, когда я запускаю приемочные тесты Codeception несколько раз в Yii2.
Ниже приведен стек ошибок:
[UnknownServerException] Сообщение об ошибке => ‘URL’http://localhost/project/backend/web/index.php/user/list
не загружается Ошибка: ‘ReferenceError: Не удается найти переменную: CustomEvent’ ‘
вызвано Request => {«headers»: {«Accept»: «application / json», «Content-Length»: «85», «Content-Type»: «application / json; charset = UTF-8″, » Host «:» 127.0.0.1:4444 «},» httpVersion «:» 1.1″ , «метод»: «POST», «пост»: «{\» URL \ «: \» HTTP: \ / \ / локальный \ /project\/backend\/web\/index.php\/user\/list\»}»,»url»:»/url»,»urlParsed»:{«anchor»:»»,»query «:» », «файл»: «URL», «каталог»: «/», «путь»: «/ URL», «относительный»: «/ URL», «порт»: «», «хозяин»: «», «пароль»: «», «пользователь»: «», «USERINFO»: «», «власть»: «», «протокол»: «», «источник»: «/ URL», «queryKey»: {} , «куски»: [ «URL»]}, «urlOriginal»: «/ сеанса / 3f1a3090-e4fc-11e4-acf5-cdfb0adce833 / URL»}
И это код класса Cest (я не думаю, что проблема будет в коде):
use \AcceptanceTester;
use \Yii;
class CreateUserCest
{
// private $username;
// private $email;
## I don't think this work, but neither is the problem (if I commented it the error persists)
public function _before(AcceptanceTester $I)
{
try{
$this->login($I, '[email protected]', 'foobar');
}catch(Exception $e){
$I->amGoingTo('Jump login cuz Im already logged');
}
}
public function _after(AcceptanceTester $I)
{
}
private function login(AcceptanceTester $I, $email, $password)
{
$I->amOnPage('/backend/web/index.php/site/login');
$I->amGoingTo('Log in the application');
$I->see("Login");
$I->fillField("#loginform-email", $email);
$I->fillField("#loginform-password", $password);
$I->click('Login');
$I->see(Yii::t('app', 'Go to').' backoffice'); // We are succesfull logued
}
// Just username, email and password
public function createEmptyOne(AcceptanceTester $I)
{
$username = "UsuarioTest".rand(1, 10000);
$email = "UsuarioTest".rand(1, 10000)."@test.com";
$I->amGoingTo("Create a user with the basic data (username, email, password)");
$I->amOnPage("/backend/web/index.php/user/create"); ## 16/04/2015 Page loading never ends because of JS error
$I->fillField("#signupform-username", $username);
$I->fillField("#signupform-email", $email);
$I->fillField("#signupform-password", 'attime7931');
// $I->click(Yii::t('app', 'Confirm'));
$I->click('Confirmar');
$I->seeInDatabase('user', ['username' => $username, 'email' => $email]);
}
// List users
public function listUsers(AcceptanceTester $I)
{
$username = "UsuarioTest".rand(1, 10000);
$email = "UsuarioTest".rand(1, 10000)."@test.com";
$I->amGoingTo("List users");
$I->haveInDatabase('user', array('username' => $username, 'email' => $email));
$I->amOnPage("/backend/web/index.php/user/list");
$I->seeInCurrentUrl('/user/list');
$I->see('Crear usuario');
// $I->see(Yii::t('app', 'Create User'));
// $I->see($username);
$I->see($email);
}
public function updateUser(AcceptanceTester $I)
{
$username = "UsuarioTest".rand(1, 10000);
$email = "UsuarioTest".rand(1, 10000)."@test.com";
$I->haveInDatabase('user', array('username' => $username, 'email' => $email));
$id = $I->grabFromDatabase('user', 'id', ['username' => $username, 'email' => $email]);
$I->amGoingTo("Update user with id $id");
$I->amOnPage("/backend/web/index.php/user/update/$id");
$I->see('Datos principales');
$I->see($username);
$I->see($email);
}
}
Я получаю эту ошибку на консоли Chrome (я также пытался запустить тесты в Firefox, и он возвращает мне тот же результат):
Uncaught TypeError: undefined не является функцией
Когда я нажимаю на ошибку, она указывает на эту строку
jQuery (‘# w0’). yiiGridView ({«filterUrl»: «/ project / backend / web / index.php / user / list», «filterSelector»: «ввод # w0-фильтров, выбор # w0-фильтров»} );
РЕДАКТИРОВАТЬ
Я попытался исправить ошибку yiiGridView, добавив jQuery-2.1.3.min.js в мой AppAsset, чтобы избежать перезагрузки после сценария yiiGridView. И ошибка сохраняется
ВТОРОЕ РЕДАКТИРОВАНИЕ
Я исправил ошибку yiiGridView, и ошибка пользовательского события сохраняется. Причина должна быть другая
Задача ещё не решена.
Других решений пока нет …