2013-09-01 17 views
16

Sto creando i miei test (anche se sono un principiante, sto imparando) usando Codeception. Questo include accettazione e unit test per ora.Travis-CI può eseguire i test di Codeception?

Desidero aggiungere il mio repository a Travis CI in modo da poter automatizzare il processo di test dopo ogni commit e inserire il tag dello stato di build.

Vorrei chiedere;

  1. Travis-CI può eseguire test di codeception?
  2. Travis-CI può eseguire test di accettazione di codeception che emulano il browser?
  3. Se entrambe le risposte sono no, c'è qualche altro strumento CI che può?

Grazie.

risposta

2

Penso che si possa fare, ma incollare tutto ciò che non lo sarà per i deboli di cuore. Il motivo per cui penso che si possa fare è che la codeception, a sua volta, è criptata su Travis. Vedi https://travis-ci.org/Codeception/Codeception. Contatterei le persone alla codeception e chiederei i loro pensieri.

Oppure si può dare uno sguardo a come lo fanno nei registri di build, come ad esempio: https://travis-ci.org/Codeception/Codeception/jobs/14432638 Sembra che sono in esecuzione senza testa con un server di selenio autonomo scaricato.

Travis-ci ha some information on how to run GUI tests. In particolare, consentono di utilizzare un account sauce labs ed eseguire test di selenio distribuiti da lì.

0

mi sono imbattuto in questo problema oggi e ho risolto con l'aggiunta di Codeception alla mia composer.json:

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

e riferendosi ad essa sul mio .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

Sì, è possibile eseguire Test di codeception, inclusi test di accettazione eseguiti con WebDriver, su Travis CI.

È possible to run your tests with a real browser on Travis, ma è più semplice utilizzare un browser senza testa, poiché Travis funziona su una macchina senza testa. PhantomJS è perfetto per questo, ed è preinstallato con il bootstrap di costruzione di Travis CI.

Per eseguire i test con PhantomJS, è necessario configurare il modulo WebDriver come questo nel file di configurazione .yml Codeception:

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

L'URL è importante. Ho trovato che il tentativo di utilizzare localhost anziché 127.0.0.1 non funzionerà. Inoltre, se accidentalmente dimentichi il http://, non funzionerà neanche. È possibile utilizzare la maggior parte delle porte 8***, poiché la maggior parte di esse è aperta, ma ovviamente è necessario disporre di un server Web in esecuzione su quella porta per servire i file statici o eseguire l'applicazione PHP. Il modo più semplice per farlo, trovo, è quello di usare il webserver integrato di PHP.

Il file .travis.yml potrebbe essere simile a questo:

# 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 

avrete ovviamente bisogno di aggiungere Codeception a composer.json il file del progetto:

composer require --dev codeception/codeception 

Avrete anche bisogno di cambiare path/to/web/root sopra al percorso della directory in cui si desidera la radice del documento del server.

Se desideri vedere una demo funzionante che esegue test WebDriver contro WordPress, puoi controllare this GitHub repo.

Problemi correlati