1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-03 06:55:03 +03:00
ifhub.club/tests
2012-12-25 10:49:58 +02:00
..
behat Added feature for run custom script 2012-12-25 10:49:58 +02:00
fixtures Added some context methods 2012-12-13 13:28:26 +02:00
travis rm sql files from tests. added symlinks for sql files from install 2012-11-23 00:38:56 +02:00
.htaccess deny access to /tests folder from the web (Apache only) 2012-10-25 22:11:11 +03:00
AbstractFixtures.php Added Behat and Mink (for tests). Created fixtures loader and simple fixtures for blog, user and topics. 2012-10-25 21:54:16 +03:00
LoadFixtures.php change comments to actual 2012-11-30 14:47:58 +02:00
README.md fixed remarks 2012-11-30 14:37:39 +02:00

Запуск функциональных тестов

Для запуска тестов проекта нужно:

  1. Переименовать файл config/config.test.php.dist в config/config.test.php и изменить настройки подключения к тестовой БД. ВАЖНО! Информация в этой БД будет перезаписываться при каждом запуске теста.

  2. В конфиге для Behat (tests/behat/behat.yml) сменить значение опции base_url на хост, под которым проект доступен локально.

  3. Выполнить команду HTTP_APP_ENV=test php tests/behat/behat.phar -c tests/behat/behat.yml. Примерный вывод результата работы команды:

DROP DATABASE social_test
CREATE DATABASE social_test
SELECTED DATABASE social_test
ExportSQL DATABASE social_test
ExportSQL DATABASE social_test -> geo_base
Feature: LiveStreet standart features
  Test base functionality of LiveStreet

  Scenario: See main page                       # features/base.feature:4
    Given I am on homepage                      # FeatureContext::iAmOnHomepage()
    When I press "Войти"                        # FeatureContext::pressButton()
    Then the response status code should be 200 # FeatureContext::assertResponseStatus()

  Scenario: See Colective Blog                       # features/base.feature:9
    Given I am on "/blog/gadgets"                    # FeatureContext::visit()
    Then I should see "Gadgets"                      # FeatureContext::assertPageContainsText()
    Then I should see "Offers latest gadget reviews" # FeatureContext::assertPageContainsText()

  Scenario: See list of blogs                        # features/base.feature:14
    Given I am on "/blogs/"                          # FeatureContext::visit()
    Then I should see "Gadgets"                      # FeatureContext::assertPageContainsText()

  Scenario: See All Topic                                                                 # features/base.feature:18
    Given I am on "/index/newall/"                                                        # FeatureContext::visit()
    Then I should see "iPad 3 rumored to come this March with quad-core chip and 4G LTE " # FeatureContext::assertPageContainsText()
    Then I should see "Toshiba unveils 13.3-inch AT330 Android ICS 4.0 tablet"            # FeatureContext::assertPageContainsText()

  Scenario: See User Profile                                                              # features/base.feature:23
    Given I am on "/profile/Golfer/"                                                      # FeatureContext::visit()
    Then I should see "Sergey Doryba"                                                     # FeatureContext::assertPageContainsText()
    Then I should see "... Sergey Doryba profile description"                             # FeatureContext::assertPageContainsText()

5 scenarios (5 passed)
14 steps (14 passed)
0m2.225s
  1. Для тестирования плагинов используется команда HTTP_APP_ENV=test php behat.phar --config='../../plugins/(название плагина)/tests/behat/behat.yml'

  2. При написании дополнительных тестов используются следующие правила: а) Доступ из базового контекcта к контексту MINK должен производится через функцию getMinkContext() Пример получения доступа к сессии: $this->getMinkContext()->getSession()

б) Получение доступа к базовому обьекту Engine производится посредством метода: $this->getEngine()

Прим: public function getEngine() { return $this->getSubcontext('base')->getEngine(); }