2013-09-01 10 views
16

Tworzę swoje testy (choć jestem początkującym, uczącym się) przy użyciu kodekceptacji. Obejmuje to akceptację i testy jednostkowe na teraz.Czy Travis-CI może prowadzić testy Codeception?

Chcę dodać moje ponowne zgłoszenie do Travis CI, dzięki czemu mogę zautomatyzować proces testowania po każdym zatwierdzeniu i umieścić znacznik statusu kompilacji.

Chciałbym zapytać;

  1. Czy Travis-CI może testować kodeki?
  2. Czy Travis-CI może uruchomić testy akceptacji kodeka na przeglądarce?
  3. Jeśli obie odpowiedzi brzmią "nie", czy istnieje inne narzędzie CI?

Dziękuję.

Odpowiedz

2

Myślę, że można to zrobić, ale klejenie wszystkiego do innych nie będzie dla osób o słabym sercu. Powodem, dla którego myślę, że można to zrobić, jest to, że sama kodeka jest w Travis. Zobacz https://travis-ci.org/Codeception/Codeception. Chciałbym skontaktować się z ludźmi w czasie kodowania i poprosić o ich myśli.

Można też rzucić okiem na to, jak robią to w dzienniku budowy, takich jak: https://travis-ci.org/Codeception/Codeception/jobs/14432638 Wygląda na to, że pracujesz bez głowy z pobranego samodzielny serwer selenu.

Travis-ci ma some information on how to run GUI tests. W szczególności pozwalają na korzystanie z konta sauce labs i uruchamianie tam rozproszonych testów selenu.

0

wpadłem na ten problem dzisiaj i ja rozwiązałem dodając Codeception do mojego composer.json:

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

i powołując się na moim .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

Tak, to jest możliwe, aby uruchomić Testy kodekceptacji, w tym testy akceptacyjne uruchamiane przy użyciu WebDriver na Travis CI.

Jest to possible to run your tests with a real browser on Travis, ale najłatwiej jest używać przeglądarki bezgłowej, ponieważ Travis pracuje na bezgłowej maszynie. PhantomJS jest do tego idealny i jest fabrycznie wyposażony w bootstrap firmy Travis CI.

Aby uruchomić testy z PhantomJS, musisz skonfigurować moduł WebDriver takiego w swojej .yml Codeception pliku konfiguracyjnego:

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

URL jest ważne. Zauważyłem, że próba użycia localhost zamiast 127.0.0.1 nie będzie działać. Ponadto, jeśli przypadkowo zrezygnujesz z http://, to również nie zadziała. Możesz użyć większości portów 8***, ponieważ większość z nich jest otwarta, ale oczywiście musisz mieć serwer WWW działający na tym porcie, aby obsługiwał twoje pliki statyczne lub uruchamiał aplikację PHP. Najłatwiej jest to zrobić, korzystając z wbudowanego serwera WWW PHP.

Plik .travis.yml może wyglądać tak:

# 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 

Będziesz oczywiście trzeba dodać Codeception do Twojego projektu composer.json pliku:

composer require --dev codeception/codeception 

Trzeba także zmienić path/to/web/root powyżej do ścieżki do katalogu, w którym ma się znajdować główny katalog serwera.

Jeśli chcesz zobaczyć działające demo z testami WebDriver przeciwko WordPress, możesz sprawdzić this GitHub repo.