2011-11-03 14 views
7

Sto cercando di far funzionare il modulo nodeunit in un progetto coffeescript ma non riesco a ottenere nemmeno un test di base da eseguire. Ecco il mio esempio CoffeeScript require 'nodeunit'Come utilizzare il nodo node.js "unità nodo" con file coffeescript

test = true 
test2 = false 

exports.testSomething = (test) -> 
    test.expect(1) 
    test.ok(true, "this should pass") 
    test.done() 

exports.testSomethingElse = (test2) -> 
    test2.expect(1) 
    test2.ok(false, "this should fail") 
    test2.done() 

Purtroppo, quando corro '$ nodeunit example.coffee' ottengo l'uscita di errore:

example.coffee:4 exports.testSomething = (test) -> ^

module.js:296 throw err; ^SyntaxError: Unexpected token > at Module._compile (module.js:397:25) at Object..js (module.js:408:10) at Module.load (module.js:334:31) at Function._load (module.js:293:12) at require (module.js:346:19) at /usr/local/lib/node/nodeunit/lib/nodeunit.js:75:37 at /usr/local/lib/node/nodeunit/deps/async.js:508:13 at /usr/local/lib/node/nodeunit/deps/async.js:118:13 at /usr/local/lib/node/nodeunit/deps/async.js:134:9 at /usr/local/lib/node/nodeunit/deps/async.js:507:9

Qualcuno può aiutarmi a ottenere solo un semplificato testare e correre in Coffeescript usando Node.js?

Grazie in anticipo

risposta

14

Il tuo esempio funziona bene per me. Potrebbe essere che stai usando una vecchia versione di nodeunit, prima che avesse il supporto di CoffeeScript; prova

npm install -g nodeunit 

per l'aggiornamento alla versione più recente.

Se ciò non riesce, quindi sospetto che si tratti di un problema di percorso, in modo che quando l'unità del nodo tenta di eseguire require 'coffee-script', non riesce.

prima fare

npm install -g coffee-script 

e prendere atto della ultima linea di uscita, che dovrebbe essere simile a

[email protected] /usr/local/lib/node_modules/coffee-script 

Ora eseguire

echo $NODE_PATH 

che nel mio caso è /usr/local/lib/node_modules. È necessario impostare NODE_PATH alla directory padre della coffee-script directory che NPM creato, con l'aggiunta di una linea come

export NODE_PATH=/usr/local/lib/node_modules 

a ~/.profile o ~/.bashrc o qualsiasi altra cosa sia le corse della shell quando comincia, e riavviare la shell. Quindi, ogni volta che si esegue require 'coffee-script' da qualsiasi app di Node sul proprio computer, troverà la libreria CoffeeScript.

+0

Lavoro investigativo fenomenale. Il mio $ NODE_PATH era vuoto, ma a nessuno dei miei altri moduli importava. Grazie mille. –

+0

@ user1028416 Dovresti contrassegnare la sua risposta come corretta, quindi. Mentre ci sei, considera la possibilità di dare una risposta a +1. Lavoriamo per crediti su Stack Overflow. :) –

0

Se il tuo caffè-script è versione 1.7 o successiva, potresti anche essere affetto da bug #247, per il quale ho appena inviato un patch.

Problemi correlati