Mejor forma de integrar maven / qunit / phantomjs?

He estado investigando la mejor manera de hacer pruebas de unidades JS en nuestro entorno de CI maven. Lo que actualmente he improvisado es lo siguiente en mi proyecto maven:

qunit recursos (archivos JS / CSS)qunit prueba archivos html (uno para cada archivo bajo prueba) con accesorio html si es necesarioindex html file que hace referencia a los archivos html de prueba como una lista ordenada de hipervínculosPhantomJS runner file, que: abre el archivo html de índice y analiza la lista de archivos de prueba abre cada archivo de prueba toma una captura de pantalla de los resultados de la prueba qunit para cada archivo Si hay alguna falla, salga con un estado de "1" Si no hay fallas, salga con un estado de "0"shell que saldrá con "0" si phantomjs no está instalado, llamará a las pruebas de phantomjs si está instalado

changes a pom.xml para ejecutar pruebas de phantomjs durante la fase de prueba de compilación:

<plugins>
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
            <execution>
                <id>PhantomJS Unit Testing</id>
                <phase>test</phase>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <executable>${project.basedir}/src/main/webapp/unittest/phantomcheck</executable>
            <arguments>
                <argument>${project.basedir}/src/main/webapp/unittest/qunit-runner.js</argument>
                <argument>${project.basedir}/src/main/webapp/unittest/tests/index.html</argument>
                <argument>${project.build.directory}/surefire-reports</argument>
            </arguments>
        </configuration>
    </plugin>
</plugins>

Entonces, esto funciona muy bien. Ejecuta las pruebas de qunit durante las compilaciones en nuestras máquinas de desarrollo y compilación (siempre que PhantomJS esté instalado). Las pruebas se ejecutan en un entorno de navegador sin cabeza sin restricciones en las pruebas qunit. Otras integraciones de maven / qunit que he visto se quedan cortas debido a la ejecución de las pruebas en Rhino u otros entornos JS que imponen restricciones al tipo de pruebas que podemos escribir. Además, phantomjs nos brinda la posibilidad de tener capturas de pantalla de las ejecuciones de prueba, que son útiles para solucionar cualquier falla.

El inconveniente de mi enfoque es que se requiere una instalación de PhantomJS en la máquina de compilación / desarrollo. No sé cómo agrupar phantomJS en una dependencia de modo que los desarrolladores no tengan que preocuparse por instalar PhantomJS. ¿Alguien puede darme un empujón en esta dirección? ¿Cómo empiezo

Respuestas a la pregunta(10)

Su respuesta a la pregunta