2012-09-09 19 views
10

Sto cercando di ottenere travis-ci per testare il mio modulo nodejs con il nodo jasmine. Quando eseguo i test dalla riga di comando, passano tutti, ma per qualsiasi ragione, Travis segnala sempre la mia build come fallita. Il mio .travis.yml assomiglia a questo:Travis-CI con nodo di gelsomino

language: node_js 
node_js: 
    - 0.6 
    - 0.8 

e la mia package.json assomiglia a questo:

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

Ho provato ad aggiungere un before_script alla mia travis.yml

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

Qualche idea?

+0

Avete un nodo di gelsomino come dipendenza da dev? Qual è l'output del test Travis-CI fallito? Devi solo postare un link al test poiché è pubblico. –

+0

In realtà sono appena arrivato. Sto postando la mia risposta ora. – thewildpendulum

+1

Inoltre, è possibile aggiungere dipendenze di sviluppo a package.json con il flag --save-dev. Esempio: 'npm install --save-dev jasmine-node' – Noah

risposta

10

Dopo aver trascorso un po 'di tempo con il travis-ci lint web app, sembra che sia appena arrivato a una questione di formattazione nel mio file .travis.yml. Il mio editor di testo stava inserendo le schede, dove sembra che yaml richieda solo gli spazi. Ho anche aggiunto le citazioni su tutto per una buona misura.

Ora assomiglia a questo, dopo essersi assicurati che stavo solo usando singoli spazi e ritorni a capo:

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

Aggiornato per rimuovere 'sudo' da' before_script' come suggerito da @ dan-tao – thewildpendulum

+0

Grazie, mi ha aiutato! –

0

Ho avuto un problema simile qualche tempo fa, stavo usando al momento -g jasmine-nodo e dato che si trattava di un semplice kata pensavo che non fosse necessario aggiungere un pacchetto. json nella cartella, ma quando mi sono trasferito a integrare lo stesso progetto con travis-ci, ho attraversato l'inferno per poterlo configurare.

Con il tempo ho imparato che è meglio mantenere le cose bello e stretto e usare il vostro package.json amichevole al posto di impianti a livello mondiale (c'è un buon posto di parlarne qui, per esempio: Why to avoid global test runners)

il mio consiglio è per voi di aggiungere gelsomino nodo al package.json, qualcosa di più breve questa

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

sarà sicuramente risparmiare un mal di testa e tonnellate di configurazione di tempo non solo con l'integrazione Travis-ci, e può anche salvare il tempo di qualcun altro nel caso qualcuno voglia riutilizzare ciò che hai fatto. ;)

1

Ecco un repository con un esempio di lavoro di una costruzione di Travis che avvia i test jasmine-node: https://github.com/yosethegame/yosethegame.

Si noti che il package.json dichiara la dipendenza jasmine-node che installerà Travis nella fase di installazione di npm.

Problemi correlati