7

我试图让 nodeunit 模块在一个咖啡脚本项目中工作,但似乎连基本的测试都无法运行。这是我的示例 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: 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) 需要 (module.js:346:19) 在 /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 在 /usr/local/lib/node/nodeunit/deps/async.js :134:9 在 /usr/local/lib/node/nodeunit/deps/async.js:507:9

任何人都可以帮助我使用 Node.js 在 Coffeescript 中启动和运行一个简化的测试吗?

提前致谢

4

2 回答 2

14

你的例子对我来说运行良好。可能是您使用的是旧版本的 nodeunit,在它支持 CoffeeScript 之前;尝试

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。您需要通过添加如下行来设置为 npm 创建NODE_PATH的目录的父目录coffee-script

export NODE_PATH=/usr/local/lib/node_modules

to ~/.profileor~/.bashrc或者其他任何你的shell在它启动时运行,然后重新启动你的shell。然后,无论何时您require 'coffee-script'从机器上的任何 Node 应用程序中执行操作,它都会找到 CoffeeScript 库。

于 2011-11-03T20:09:47.330 回答
0

如果您的咖啡脚本是 1.7 或更高版本,您可能还会遇到错误 #247,我刚刚为此提交了一个补丁

于 2014-04-28T18:37:24.270 回答