我在我的 Mac os x 上安装了 Testem(我同事的版本是 0.2.52,但在最新版本中问题仍然存在)和 CoffeeScript(1.6.3)。我们使用 testem 来运行我们项目的所有 Mocha 规范,并且都顺利运行了一段时间,只需输入:
testem
在正确的文件夹中。突然(我认为在 Mac 软件更新之后),如果不使用 sudo 特权运行,它就会停止工作。这很烦人,但没有时间深入研究它,我只是习惯了运行:
sudo testem
然后(在又一次 Mac 软件更新之后,我还在猜测)它完全停止工作,给了我这个错误:
Error running before_tests hook: coffee -co test/temp . && handlebars app/templates -a true -f test/temp/app/scripts/Templates.js
child_process.js:794
throw errnoException(errno, 'spawn');
^
Error: spawn EAGAIN
at errnoException (child_process.js:847:11)
at ChildProcess.spawn (child_process.js:794:11)
at exports.spawn (child_process.js:618:9)
at Object.exports.execFile (child_process.js:510:15)
at exports.exec (child_process.js:481:18)
at writeJs (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:432:16)
at Object.fs.exists [as oncomplete] (fs.js:91:19)
如果我只输入 coffeescript 部分,我会得到同样的错误:
coffee -co test/temp .
这就是为什么我猜这是 CoffeeScript 的问题。和许可,我会说。
只是为了添加一些上下文(因为我知道这听起来很奇怪),这是一个运行到 Yeoman (0.9.6) 的 Backbone/Marionette 项目。
有任何想法吗?提前致谢。
* 更新* 如果我简单地运行:
coffee -c . // without the "-o test/temp" option
它实际上编译了没有错误的文件(将生成的 javascript 放在错误的文件夹中)。
my-app
|
| - test // this one always exists, because it contains the specs of the project and other stuff
| - ...
| - temp // this folder is created and deleted by testem
所以最后似乎是拥有创建、写入和删除临时文件夹的权限的问题,不是吗?任何人?