2011-11-03 7 views
7

Estoy tratando de hacer funcionar el módulo nodeunit dentro de un proyecto de coffeescript, pero parece que ni siquiera se puede ejecutar una prueba básica. Aquí está mi ejemplo CoffeeScript require 'nodeunit'Cómo usar el módulo node.js 'nodeunit' con archivos 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() 

Por desgracia, cuando corro '$ nodeunit example.coffee' consigo la salida de error:

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

¿Puede alguien ayudarme a conseguir un solo simplificada probar y ejecutar en Coffeescript usando Node.js?

Gracias de antemano

Respuesta

14

Su ejemplo funciona bien para mí. Podría ser que esté usando una versión anterior de nodeunit, antes de que tuviera soporte para CoffeeScript; intente

npm install -g nodeunit 

para actualizar a la última versión.

Si eso falla, entonces sospecho que es un problema de ruta, por lo que cuando nodeunit intenta hacer require 'coffee-script', falla.

En primer lugar hacer

npm install -g coffee-script 

y tomar nota de la última línea de la salida, que debe ser algo como

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

Ahora ejecute

echo $NODE_PATH 

que en mi caso es /usr/local/lib/node_modules. Es necesario establecer NODE_PATH al directorio padre del directorio coffee-script que la NGP creado, mediante la adición de una línea como

export NODE_PATH=/usr/local/lib/node_modules 

a ~/.profile o ~/.bashrc o cualquier otra cosa que se ejecuta su concha cuando se inicia, y reinicie su concha. Luego, siempre que haga require 'coffee-script' desde cualquier aplicación Node en su máquina, encontrará la biblioteca CoffeeScript.

+0

Phenomenal detective work. My $ NODE_PATH estaba vacío, pero ninguno de mis otros módulos se interesó. Muchas gracias. –

+0

@ user1028416 Debe marcar su respuesta como correcta, entonces. Mientras lo hace, considere dar la respuesta a +1. Trabajamos por credibilidad en Stack Overflow. :) –

0

Si coffee-script es la versión 1.7 o posterior, es posible que también esté sufriendo de bug #247, para lo cual acabo de enviar un patch.

Cuestiones relacionadas