Я пытаюсь понять, что не так с моим функциональным тестированием или настройками проекта: выполнение phpunit просто распечатывает следующую информацию (я не печатаю это в набор тестов - то есть он не поступает из печати client-> getResponse() или чего-либо еще). Кроме того, в целом выполнение теста прекращается немедленно, без какой-либо информации о результатах после этого текст печатается в командной строке:Функциональный тест Symfony2 распечатывает перенаправление html и прекращает выполнение теста
<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>
После запуска PHPUnit из командной строки:
phpunit -c app --group temp1 src/AppBundle/Tests/Controller/SecurityControllerTest.php
Мой тестовый код довольно просто:
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);
}
//....
}
Дополнительно e xactly же тестовый пример отлично работает в другом проекте, над которым я работаю, поэтому я стараюсь выкапывать различия в конфигурациях проектов и т. д. без везения.
Любая помощь очень ценится - не стесняйтесь спрашивать какой-либо другой код/содержимое конфигурационного файла, если это может быть полезно/актуально.
с использованием Symfony 2.3.12 & PHPUnit 4.1.0
ОБНОВЛЕНО: специфический код цепи, что приводит к ошибке
Таким образом, после управления, чтобы обойти эту проблему путем решения основной проектной сессии вопросы, пара дней назад, я вернулся, чтобы отладить эту проблему еще немного дальше. И в настоящее время, кажется, что результат обусловлен следующим кодом цепи, первый вызова вперед:
$this->forward('bundle:controller:action')->send();
и пересылаемого действия контроллера вызова перенаправляет:
$this->redirect($this->generateUrl($route, $parameters))->send();
, очевидно, этот поток контроллер кажется немного странным в общем, но остается вопрос, почему это приводит к наблюдаемому результату?
Утверждения приходят после комментария, что ниже строки никогда не достигаются. Я также добавлю их на вопрос – ejuhjav
, проверяете ли вы по умолчанию веб-сервер или apache? –
@GaneshPatil Я запускаю это из командной строки с phpunit (обновленный вопрос) – ejuhjav