2012-09-09 12 views
10

Estoy tratando de obtener travis-ci para probar mi módulo nodejs con jasmine-node. Cuando ejecuto las pruebas desde la línea de comandos, todas pasan, pero por alguna razón, Travis siempre informa que mi compilación falla. Mi .travis.yml se ve así:Travis-CI con jasmine-node

language: node_js 
node_js: 
    - 0.6 
    - 0.8 

y mi package.json se ve así:

"scripts": { 
    "test": "jasmine-node tests/*.spec.js" 
} 

He intentado añadir un before_script a mi travis.yml

language: node_js 
node_js: 
    - 0.6 
    - 0.8 
before_script: 
    - "sudo npm i -g jasmine-node" 

¿Alguna idea?

+0

¿Tiene jasmine-node como dependencia de dev? ¿Cuál es el resultado de la prueba fallida de Travis-CI? Solo debe publicar un enlace a la prueba ya que es público. –

+0

De hecho, me puse a correr. Estoy publicando mi respuesta ahora. – thewildpendulum

+1

También tenga en cuenta que puede agregar dependencias de desarrollo a su paquete.json con el indicador --save-dev. Ejemplo: 'npm install --save-dev jasmine-node' – Noah

Respuesta

10

Después de pasar algo de tiempo con el travis-ci lint web app, parece que todo se redujo a una cuestión de formato en mi archivo .travis.yml. Mi editor de texto estaba insertando pestañas, donde parece que yaml requiere que solo use espacios. También agregué comillas alrededor de todo para una buena medida.

Ahora parece que esto, después de asegurarse de que sólo estaba usando espacios individuales y saltos de línea:

language: node_js 
node_js: 
    - "0.6" 
    - "0.8" 
before_script: 
    - "npm i -g jasmine-node" 
+0

Actualizado para eliminar 'sudo' de' before_script' como lo sugiere @ dan-tao – thewildpendulum

+0

¡Gracias, eso me ayudó! –

0

que tenía un problema similar hace algún tiempo, yo estaba usando en ese momento -g-nodo y jazmín dado que era un kata simple, pensé que no era necesario agregar un paquete .json en la carpeta, pero cuando comencé a integrar el mismo proyecto con travis-ci, pasé por un infierno para poder configurarlo.

Con el tiempo he aprendido que es mejor mantener las cosas agradables y apretados y usar su package.json usar en lugar de instalaciones globales (No es un buen post hablando sobre ello aquí por ejemplo: Why to avoid global test runners)

mi consejo sería que le permite añadir jazmín-nodo al package.json, algo tan corto como este

{ 
    "name" : "XXX", 
    "version" : "1.0.0", 
    "devDependencies" : { 
     "jasmine-node" : "latest" 
    }, 
    "scripts" : { 
     "test" : "jasmine-node specs/*spec.js" 
    } 
} 

seguramente le ahorrará un dolor de cabeza y un montón de configuración de tiempo, no sólo con la integración Travis-ci, y también puede ahorrar el tiempo de otra persona en caso de que alguien quiera reutilizar lo que has hecho. ;)

1

Aquí hay un repositorio con un ejemplo funcional de una versión travis que inicia las pruebas jasmine-node: https://github.com/yosethegame/yosethegame.

Tenga en cuenta que el package.json declara la dependencia jasmine-node que travis instalará en su fase de instalación npm.