如何将node.js模块'nodeunit'与coffeescript文件一起使用

Bri*_*ink 7 node.js coffeescript nodeunit

我正在尝试让nodeunit模块在coffeescript项目中运行,但似乎无法运行基本测试.这是我的例子Coffeescript要求'nodeunit'

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()
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我运行'$ nodeunit example.coffee'时,我收到错误输出:

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

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

任何人都可以帮助我使用Node.js在Coffeescript中进行简化测试并运行吗?

提前致谢

Tre*_*ham 14

你的例子适合我.在你有CoffeeScript支持之前,你可能正在使用旧版本的nodeunit; 尝试

npm install -g nodeunit
Run Code Online (Sandbox Code Playgroud)

更新到最新版本.

如果失败了,那么我怀疑这是一个路径问题,所以当nodeunit尝试这样做时require 'coffee-script',它会失败.

先做

npm install -g coffee-script
Run Code Online (Sandbox Code Playgroud)

并注意输出的最后一行,它应该看起来像

coffee-script@1.1.2 /usr/local/lib/node_modules/coffee-script
Run Code Online (Sandbox Code Playgroud)

现在跑

echo $NODE_PATH
Run Code Online (Sandbox Code Playgroud)

在我的情况下是/usr/local/lib/node_modules.您需要通过添加一行来设置npm创建NODE_PATHcoffee-script目录的父目录

export NODE_PATH=/usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

~/.profile~/.bashrc或其他任何这是你的shell运行启动时,并重新启动你的shell.然后,只要您require 'coffee-script'从计算机上的任何Node应用程序执行操作,它就会找到CoffeeScript库.