Staram się zrozumieć, co jest nie tak z moimi testami funkcjonalnymi lub ustawieniami projektu: wykonanie phpunit'a wypisuje następujące informacje (nie drukuję tego w zestaw testów - tzn. nie pochodzi od klienta-> getResponse() lub czegokolwiek). Dodatkowo cała wykonanie testu zatrzymuje się natychmiast, bez jakichkolwiek informacji wynikowej po ten tekst jest drukowany w wierszu poleceń:Test funkcjonalny Symfony2 wypisuje przekierowanie html i zatrzymuje wykonanie testu
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="1;url=/" />
<title>Redirecting to /</title>
</head>
<body>
Redirecting to <a href="/">/</a>.
</body>
</html>
Po uruchomieniu PHPUnit z wiersza poleceń:
phpunit -c app --group temp1 src/AppBundle/Tests/Controller/SecurityControllerTest.php
mojego kodu testu jest raczej prosty:
class SecurityControllerTest extends WebTestCase
{
/**
* test login with succesfull case
*
* @group login
* @group temp1
*/
public function testLogin_success()
{
$client = static::createClient();
$crawler = $client->request('GET', '/');
// temp - just to test that the initial crawler location is correct
$this->assertGreaterThan(0, $crawler->filter('html:contains("System Login")')->count(), "login page not found");
$client->followRedirects(true);
$crawler = $this->loginSubmit($client, $crawler, "[email protected]", "basic_user1_password");
// THE BELOW ROWS ARE NEVER REACHED
// test that the user can access the user home
$crawler = $client->request('GET', '/user/myprofile');
$this->assertGreaterThan(0, $crawler->filter('html:contains("Welcome to your user profile")')->count(), "User homepage not accessible after login");
}
private function loginSubmit($client, $crawler, $username, $password)
{
$loginButton = $crawler->selectButton('Login');
$loginForm = $loginButton->form();
$loginForm['form[email]'] = $username;
$loginForm['form[password]'] = $password;
// BELOW IS THE ROW THAT RESULTS IN THE PRINTOUT + TEST EXECUTION STOP
return $client->submit($loginForm);
}
//....
}
Dodatkowo e xactly ten sam test działa dobrze na innym projekcie, nad którym pracuję, więc próbowałem odszukać różnice w konfiguracjach projektu itp. bez powodzenia.
Każda pomoc jest bardzo doceniana - możesz poprosić o inną zawartość pliku kodu/konfiguracji, jeśli jest to pomocne/istotne.
użyciu symfony 2.3.12 & PHPUnit 4.1.0
aktualizacja: specyficzny łańcuch kodu, który prowadzi do błędu
Więc po starają się obejść ten problem, rozwiązując kwestie leżące u podstaw projektu kilka sesji Kilka dni temu wróciłem do debugowania tego problemu jeszcze trochę dalej. I obecnie wydaje się, że wynik jest z powodu następującego łańcucha kodu, najpierw dzwoni do przodu:
$this->forward('bundle:controller:action')->send();
aw przekazanych akcji kontrolera nazywając przekierować:
$this->redirect($this->generateUrl($route, $parameters))->send();
oczywiście przepływ ten kontroler wydaje się nieco dziwne ogólnie rzecz biorąc, ale pozostaje pytanie, dlaczego prowadzi to do zaobserwowanego wyniku?
po stwierdzeniu, że poniższe wiersze nie zostały osiągnięte, pojawiają się asercje. Dodam je również do pytania – ejuhjav
czy sprawdzasz z domyślnym serwerem WWW lub z apache? –
@GaneshPatil Używam tego z linii poleceń z phpunit (zaktualizowałem pytanie) – ejuhjav