Страница 1 из 2

Codeception - acceptance test

Добавлено: 2015.03.30, 17:37
shkarbatov
Всем привет, есть сервис на Yii2, для тестов использую Codeception.

Unit тесты работаю отлично, а вот acceptance тесты не получается запустить.

Пробую через PhpBrowser запустить

Вот мой: IndexCept.php

Код: Выделить всё

<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that transfers admin work');
$I->see('test'); 
Вот мой acceptance.suite.yml

Код: Выделить всё

class_name: AcceptanceTester
modules:
    enabled: PhpBrowser
    config:
        PhpBrowser:
            url: 'http://transfer.ll/admin' 
Но падает ошибка:
LogicException: The page history is empty.

-------------------------------------------------------------------------------------------

Решил еще попробовать с WebDriver
Вот мой acceptance.suite.yml

Код: Выделить всё

class_name: AcceptanceTester
modules:
    enabled:
        - WebDriver
    config:
        WebDriver:
            url: 'http://transfer.ll/admin'
            browser: firefox
            restart: true
Запускал вот по этой инструкции:
http://codeception.com/docs/modules/WebDriver

Но тут тоже валится ошибка

Код: Выделить всё

<body id=ERR_CONNECT_FAIL>
   <div id="titles"  
      >
      <h1>ERROR</h1>
      <h2>The requested URL could not be retrieved</h2>
   </div>
   <hr>
   <div id="content">
      <p>При получении URL <a href="http://127.0.0.1:4444/wd/hub/session">http://127.0.0.1:4444/wd/hub/session</a> произошла следующая ошибка
      </p>
      <blockquote id="error">
         <p><b>Соединение с 127.0.0.1 не удалось</b></p>
      </blockquote>
      <p id="sysmsg">Система вернула: <i>(111) Connection refused</i></p>
      <p>У  
         даленный узел или сеть недоступен. Повторите запрос позднее
      </p>
      <p>Администратор Вашего кэша: <a href="mailto:[email protected]?subject=CacheErrorInfo%20-%20ERR_CONNECT_FAIL&body=CacheHost%3A%20  
         proxy.send.com.ua%0D%0AErrPage%3A%20ERR_CONNECT_FAIL%0D%0AErr%3A%20(111)%20Connection%20refused%0D%0ATimeStamp%3A%20Mon,%2030%20Mar%202015%2014%3A22%3A26%20GMT%0D%0A%0D%0AClientIP%3A%2010.42.  
         13.109%0D%0AServerIP%3A%20127.0.0.1%0D%0A%0D%0AHTTP%20Request%3A%0D%0APOST%20%2Fwd%2Fhub%2Fsession%20HTTP%2F1.1%0AProxy-Authorization%3A%20Basic%20ZG4xMDA3ODlzZHMxOnpoRGs3NDkzNw%3D%3D%0D%0AHost%3A%201  
         27.0.0.1%3A4444%0D%0AProxy-Connection%3A%20Keep-Alive%0D%0AContent-Type%3A%20application%2Fjson%3Bcharset%3DUTF-8%0D%0AAccept%3A%20application%2Fjson%0D%0AContent-Length%3A%2085%0D%0A%0D%0A%0D%0A">[email protected]</a>.
      </p>
      <br> 
   </div>
   <hr>
   <div id="footer">
      <p>Создано Mon, 30 Mar 2015 14:22:26 GMT на proxy.send.com.ua (squid/3.4.4)</p>
      <!-- ERR_CONNECT_FAIL --> 
   </div>
</body>
Есть подозрение, что валится она из-за прокси, но какое прокси, если все работает локально?

-------------------------------------------------------------------------------------------

Полазил по форумам, но в инете ничего не нашел, может кто-то уже сталкивался с таким?

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 07:55
yiijeka
у вас локальный сервер под 127.0.0.1:4444 запущен?

Кстати по ошибке - LogicException: The page history is empty. В гугле куча вопросов без ответов за последнее время, может быть это свежий баг.
https://github.com/Codeception/Codeception/issues/1732

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 09:42
shkarbatov
yiijeka писал(а):у вас локальный сервер под 127.0.0.1:4444 запущен?
Да, попробовал зайти на него через браузер, все открывается.

Подсказали на одном из форумов:

Код: Выделить всё

$I->wantTo('ensure that transfers admin work');
$I->amOnPage('/');  <- пропустил
$I->see('test');
 
Странно конечно, но в документации не пишут, что это обязательный параметр.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:07
shkarbatov
Но это касательно PhpBrowser, касательно WebDriver все еще не понятно, в чем причина. Так как если пинговать сервис из терминала, то все отлично пингуется.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:17
Insolita
для phpBrowser попробуте урл не : url: 'http://transfer.ll/admin' а через localhost

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:20
shkarbatov
Insolita писал(а):для phpBrowser попробуте урл не : url: 'http://transfer.ll/admin' а через localhost
У меня несколько проектов на localhost, как же оно узнает куда идти?

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:25
Insolita
через порт какой-нить .. а для вебдрайвер - у вас селениум или фантом установлены? http://codeception.com/docs/modules/WebDriver

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:32
shkarbatov
Selenium

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:33
Insolita
и серв какой - линукс или типа openserver

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:38
shkarbatov
Система - Ubuntu. Сервер - Apache.
Настраивать свой порт для каждого проекта, как-то звучит не очень, у меня сейчас их около 8 на машине.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:47
Insolita
просто в консоли переходите в папку веб с нужным проектом и набираете php -S localhost:22334 и не закрываете - в сьюит
config:
PhpBrowser:
url: http://localhost:22334

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 10:52
Insolita
а щас заметела что у вас там ошибка вываливается - так значит у вас и так запускается норм под phpBrower и так

Код: Выделить всё

$I->wantTo('ensure that transfers admin work');
$I->amOnPage('/'); 
$I->see('test');
А так оно не срабатывает?

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 11:21
shkarbatov
Я выше писал =)

Код: Выделить всё

$I->amOnPage('/');  <- пропустил

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 11:26
shkarbatov
Проблема именно с локальным запуском, то есть когда тесты и сервис на одной машине, то есть localhost.
Insolita писал(а):просто в консоли переходите в папку веб с нужным проектом и набираете php -S localhost:22334 и не закрываете - в сьюит
config:
PhpBrowser:
url: http://localhost:22334
Пробовал так, но пишет, что

Код: Выделить всё

<h1>Not Found</h1><p>The requested resource <code class="url">/admin</code> was not found on this server.</p>
Если поставить внешний сервис, то все работает отлично. Такое чувство, что он не обращает внимание на мой /etc/hosts.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 11:32
lynicidn
отключите prettyUrl

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 11:33
lynicidn
https://github.com/yiisoft/yii2-app-adv ... ig.php#L21 вот это не трогайте, проблема скорее всего в этом

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 11:41
shkarbatov
Врятли в этом. На тестовом сервере, который на другой машине все работает, а на локальном - нет.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 15:31
shkarbatov
У кого-то есть еще какие-то идеи?

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 15:35
shkarbatov
Insolita писал(а):просто в консоли переходите в папку веб с нужным проектом и набираете php -S localhost:22334 и не закрываете - в сьюит
config:
PhpBrowser:
url: http://localhost:22334
Сразу не там запустил, сейчас перепроверил, так работает, но честно говоря смахивает больше на хак, чем на решение проблемы.

Re: Codeception - acceptance test

Добавлено: 2015.03.31, 17:12
Insolita
ну это по сути просто запуск на встроенноем php-шном сервере, и если на нем норм работает, а при указании в урле домена т.е работы через общий вебсервер глючит - значит что-то не так с настройками обычного веб-сервера.
А если в браузере вы вручную наберете http://вашдомен.ру/index-test.php = т.е. запускной скрипт с тестовой конфигурацией - то норм работает? Все тестовые дополнения основного конфига ... ничего там не напуталось с учетом environments/local специфичных конфигов?
Попробуйте поднять просто чистый yii2-app и запустить acceptance-тесты из коробки...