testing travis-ci codeception

testing - ¿Puede Travis-CI realizar pruebas de Codeception?



(3)

Me encontré con este problema hoy y lo resolví agregando Codeception a mi composer.json :

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

y refiriéndome a él en mi .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

Estoy creando mis pruebas (aunque soy un principiante, aprendiendo) usando Codeception. Esto incluye la aceptación y pruebas de unidad por ahora.

Quiero agregar mi repo a Travis CI para poder automatizar el proceso de prueba después de cada confirmación y poner una etiqueta de estado de compilación.

Me gustaría preguntar;

  1. ¿Puede Travis-CI realizar pruebas de codecepción?
  2. ¿Puede Travis-CI ejecutar pruebas de aceptación de codecepción emulando navegador?
  3. Si ambas respuestas son no, ¿hay alguna otra herramienta de CI que pueda?

Gracias.


Pensaría que se puede hacer, pero pegar todo no va a ser para los débiles de corazón. La razón por la que creo que se puede hacer es que la codecepción, en sí misma, está basada en Travis. Consulte https://travis-ci.org/Codeception/Codeception . Me pondría en contacto con la gente en codeception y preguntaría por sus pensamientos.

O puede echar un vistazo a cómo lo hacen en los registros de compilación, como por ejemplo: https://travis-ci.org/Codeception/Codeception/jobs/14432638 Parece que se están ejecutando sin cabeza con un servidor de selenio independiente descargado.

Travis-ci tiene alguna información sobre cómo ejecutar pruebas de GUI . En particular, le permiten usar una cuenta de laboratorios de salsa y ejecutar pruebas de selenio distribuidas desde allí.


Sí, es posible ejecutar pruebas de Codeception, incluidas las pruebas de aceptación que se ejecutan con WebDriver, en Travis CI.

Es posible ejecutar sus pruebas con un navegador real en Travis , pero es más fácil usar un navegador sin cabeza, ya que Travis se ejecuta en una máquina sin cabeza. PhantomJS es perfecto para esto, y viene preinstalado con el bootstrap de compilación de Travis CI.

Para ejecutar las pruebas con PhantomJS, deberá configurar el módulo WebDriver de esta manera en su archivo de configuración de .yml .yml:

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

La URL es importante. Descubrí que intentar usar localhost lugar de 127.0.0.1 no funcionará. Además, si accidentalmente omite el http:// , tampoco funcionará. Puede usar la mayoría 8*** puertos 8*** , ya que la mayoría de ellos están abiertos, pero, por supuesto, necesitará tener un servidor web que se ejecute en ese puerto para servir sus archivos estáticos o ejecutar su aplicación PHP. La forma más fácil de hacer esto, me parece, es usar el servidor web incorporado de PHP.

Su archivo .travis.yml podría verse así:

# 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

Por supuesto, deberá agregar Codeception al archivo composer.json su proyecto:

composer require --dev codeception/codeception

También deberá cambiar la path/to/web/root anterior a la ruta al directorio donde desea que esté la raíz del documento del servidor.

Si desea ver una demostración en funcionamiento que ejecuta las pruebas de WebDriver en WordPress, puede consultar este repositorio de GitHub .