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

时间:2011-11-03 19:44:49

标签: 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()

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

  

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

     

module.js:296       扔错了;       ^ SyntaxError:意外的令牌>       在Module._compile(module.js:397:25)       在Object..js(module.js:408:10)       在Module.load(module.js:334:31)       在Function._load(module.js:293:12)       at require(module.js:346:19)       at /usr/local/lib/node/nodeunit/lib/nodeunit.js:75:37       在/usr/local/lib/node/nodeunit/deps/async.js:508:13       在/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

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

提前致谢

2 个答案:

答案 0 :(得分:14)

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

npm install -g nodeunit

更新到最新版本。

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

首先做

npm install -g coffee-script

并记下输出的最后一行,它应该类似于

coffee-script@1.1.2 /usr/local/lib/node_modules/coffee-script

现在运行

echo $NODE_PATH

在我的情况下是/usr/local/lib/node_modules。您需要将NODE_PATH设置为npm创建的coffee-script目录的父目录,方法是添加一行,如

export NODE_PATH=/usr/local/lib/node_modules

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

答案 1 :(得分:0)

如果您的咖啡脚本是1.7或更高版本,您可能还会遇到bug #247,我刚刚提交了patch