2013-09-01 2 views
16

Я создаю свои тесты (хотя я новичок, учился) с помощью Codeception. Это включает в себя принятие и модульные тесты на данный момент.Может ли Travis-CI запускать тесты кода?

Я хочу добавить свое репо в Travis CI, чтобы я мог автоматизировать процесс тестирования после каждой фиксации и поместить тег статуса сборки.

Я хотел бы спросить;

  1. Can Travis-CI запускает тесты на кодирование?
  2. Может ли Travis-CI запускать приемочные тесты для генерации кода, эмулируя браузер?
  3. Если в обоих ответах нет, есть ли другой инструмент CI, который может?

спасибо.

ответ

2

Я думаю, что это можно сделать, но приклеить все к тому, что не будет для слабонервных. Причина, по которой я думаю, что это может быть сделано, заключается в том, что сама кодировка восходит к Трэвису. См. https://travis-ci.org/Codeception/Codeception. Я бы связался с людьми по поводу кода и попросил их мысли.

Или вы можете взглянуть на то, как они это делают в журналах сборки, такие как: https://travis-ci.org/Codeception/Codeception/jobs/14432638 Похоже, они работают без головы с загруженным автономным сервером селена.

Travis-ci есть some information on how to run GUI tests. В частности, они позволяют вам использовать учетную запись sauce labs и проводить оттуда распределенные тесты селена.

0

Я столкнулся с этой проблемой сегодня, и я решил ее, добавив Codeception к моему composer.json:

"require-dev": { 
    "codeception/codeception": "^2.1" 
}, 

и обращаясь к нему на моем .travis.yml:

install: 
    - composer self-update 
    - composer install 

before_script: 
    - #Code that creates and seeds my database and so on 

script: php vendor/codeception/codeception/codecept run 
5

Да, можно запустить Тесты с коллаксией, включая приемочные тесты, которые запускаются с использованием WebDriver, на Travis CI.

Это possible to run your tests with a real browser on Travis, но проще всего использовать безгласный браузер, так как Travis работает на безголовой машине. PhantomJS идеально подходит для этого, и он поставляется с предустановленной загрузкой Travis CI.

Чтобы запустить тесты с PhantomJS, вам необходимо настроить модуль WebDriver, как это в файле конфигурации .yml Codeception:

modules: 
    config: 
     WPWebDriver: 
      url: 'http://127.0.0.1:8888' 
      browser: phantomjs 

URL-адрес имеет важное значение. Я нашел, что попытка использовать localhost вместо 127.0.0.1 не будет работать. Кроме того, если вы случайно оставите http://, это тоже не сработает. Вы можете использовать большинство портов 8***, так как большинство из них открыты, но, конечно же, вам понадобится веб-сервер, работающий на этом порту, чтобы обслуживать ваши статические файлы или запускать приложение PHP. Самый простой способ сделать это, я считаю, - использовать встроенный веб-сервер PHP.

Ваш файл .travis.yml может выглядеть примерно так:

# Travis CI configuration file. 

language: php 

php: 
    - 5.6 
    - 7.0 

before_script: 
    # Start up a web server. 
    - php -S 127.0.0.1:8888 -t /path/to/web/root >/dev/null 2>&1 & 
    # Start up the webdriver. 
    - phantomjs --webdriver=4444 >/dev/null 2>&1 & 
    # Install Codeception. 
    # Doing this last gives the webdriver and server time to start up. 
    - composer install --prefer-source 

script: 
    - vendor/bin/codecept run 

Вы, конечно, нужно добавить Codeception в composer.json файл вашего проекта:

composer require --dev codeception/codeception 

Вам также нужно изменить path/to/web/root выше к пути к каталогу, в котором вы хотите, чтобы корень документа сервера был.

Если вы хотите увидеть рабочую демонстрационную версию тестов WebDriver против WordPress, вы можете проверить this GitHub repo.

Смежные вопросы