2013-09-01 20 views
16

Ich erstelle meine Tests (obwohl ich ein Anfänger bin, lerne) mit Codeception. Dies beinhaltet vorerst Akzeptanz- und Unit-Tests.Kann Travis-CI Codeception-Tests durchführen?

Ich möchte meinen Repo zu Travis CI hinzufügen, damit ich den Testprozess nach jedem Commit automatisieren und Build-Status-Tag setzen kann.

Ich würde gerne fragen;

  1. Kann Travis-CI Codetests durchführen?
  2. Kann Travis-CI Codeception-Akzeptanztests ausführen, die den Browser emulieren?
  3. Wenn beide Antworten nein sind, gibt es ein anderes CI-Tool?

Vielen Dank.

Antwort

2

Ich würde denken, dass es getan werden kann, aber alles zu kleben wird nicht für schwache Nerven sein. Grund, warum ich denke, dass es getan werden kann, ist, dass die Codeception selbst auf Travis basiert ist. Siehe https://travis-ci.org/Codeception/Codeception. Ich würde die Leute bei der Codeception kontaktieren und nach ihren Gedanken fragen.

Oder Sie können einen Blick darauf werfen, wie sie es in den Build-Protokollen zu tun, wie zum Beispiel: https://travis-ci.org/Codeception/Codeception/jobs/14432638 Sieht aus wie sie kopflos eigenständigen Selen-Server mit einem heruntergeladen laufen lassen.

Travis-ci haben some information on how to run GUI tests. Insbesondere erlauben sie Ihnen, ein sauce labs Konto zu verwenden und verteilte Selentests von dort auszuführen.

0

Ich lief heute in dieses Problem und ich löste es durch Codeception meiner composer.json fügte hinzu:

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

und unter Bezugnahme auf es auf meinem .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

Ja, ist es möglich, laufen Codeception-Tests, einschließlich Akzeptanztests, die mit WebDriver ausgeführt werden, auf Travis CI.

Es ist possible to run your tests with a real browser on Travis, aber es ist am einfachsten, einen kopflosen Browser zu verwenden, da Travis auf einem kopflosen Rechner läuft. PhantomJS ist perfekt dafür, und es kommt vorinstalliert mit Travis CI Build Bootstrap.

Um die Tests mit PhantomJS ausführen, müssen Sie das Modul WebDriver wie dies in Ihrer .yml Codeception Konfigurationsdatei konfigurieren:

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

Die URL wichtig ist. Ich habe festgestellt, dass der Versuch, localhost anstelle von 127.0.0.1 zu verwenden, nicht funktioniert. Wenn Sie versehentlich die http:// auslassen, funktioniert das auch nicht. Sie können den meisten beliebigen 8***-Port verwenden, da die meisten von ihnen offen sind, aber natürlich müssen Sie einen Webserver haben, der auf diesem Port läuft, um Ihre statischen Dateien zu bedienen oder Ihre PHP-Anwendung auszuführen. Der einfachste Weg, dies zu tun, ist, den PHP-integrierten Webserver zu verwenden.

Ihre .travis.yml Datei könnte wie folgt aussehen:

# 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 

Sie brauchen natürlich Codeception zu Ihrem Projekt composer.json Datei hinzufügen:

composer require --dev codeception/codeception 

Sie müssen auch path/to/web/root oben ändern zu dem Pfad zu dem Verzeichnis, in dem das Dokumentenstammverzeichnis des Servers sein soll.

Wenn Sie eine funktionierende Demo mit WebDriver-Tests gegen WordPress sehen möchten, können Sie unter this GitHub repo nachsehen.

Verwandte Themen