如何在windows node.js上运行Mocha测试(错误:找不到模块'C:\ cygdrive \ c \ Users)

时间:2012-07-24 16:05:44

标签: node.js makefile cygwin mocha

我正在尝试在Windows中运行应用程序,这个应用程序有一些mocha测试。我需要制作。我读了这个

Mocha requires make. Can't find a make.exe that works on Windows

和这个

Node.js cannot find module - interfering with cygwin on Windows

我在Github目录中有应用程序(在cygwin目录结构之外),我安装了windows版本的节点。

我尝试使用PowerShell并根据建议设置别名,但我总是得到

> module.js:340
>     throw err;
>           ^ Error: Cannot find module 'C:\cygdrive\c\Users\Nicola\AppData\Roaming\npm\node_modules\mocha\bin\mocha'
>     at Function.Module._resolveFilename (module.js:338:15)
>     at Function.Module._load (module.js:280:25)
>     at Module.runMain (module.js:487:10)
>     at process.startup.processNextTick.process._tickCallback (node.js:244:9) Makefile:5: recipe for target `test' failed make: ***
> [test] Error 1

我在该目录中安装了mocha(BTW为什么他不在node_modules subdir中查找mocha?)。问题似乎是C:\cygdrive\c\Users部分我该如何解决这个问题?

我也尝试将文件复制到cygwin下的home /目录,但我得到了

./node_modules/.bin/mocha: line 1: ../mocha/bin/mocha: No such file or directory
Makefile:5: recipe for target `test' failed
make: *** [test] Error 127

我该怎么办?

5 个答案:

答案 0 :(得分:18)

我能够做到的最好的方法是首先在目录中安装mocha作为dev依赖项(即:npm install mocha --save-dev)。然后在npm test内的package.json命令中,使用"test": "mocha"。这样,您可以在CLI中轻松运行npm test以进行标准化。您现在可以在test/目录中设置测试,也可以使用简单的test.js文件,以防您只运行一些测试。另外,不要忘记在options上添加mocha.opts个文件。这应该工作,特别是如果你使用Git Bash(我尝试过Windows CMD,它也可以工作!)。

答案 1 :(得分:1)

你应该使用msysgit - 它附带make。

答案 2 :(得分:0)

当你写“make test”时,你会收到:

./node_modules/.bin/mocha: line 1: ../mocha/bin/mocha: No such file or directory
Makefile:5: recipe for target `test' failed
make: *** [test] Error 127

这意味着您的项目中没有安装Mocha。将mocha放入package.json并运行'npm install':

{
"name": "appName"
, "version": "0.0.1"
, "private": true
, "dependencies": {

  "mocha": "1.3.0"
, "should": "1.0.0"

}
}

之后我在Windows上运行了测试。

答案 3 :(得分:0)

您可以使用以下语法在package.json文件中配置npm test命令以运行mocha。

  "scripts": {
      "test": "node node_modules/mocha/bin/mocha --recursive"
  },

答案 4 :(得分:0)

我的解决方案是运行命令node ./node_modules/mocha/bin/mocha

发生这种情况是因为mocha不是Windows环境的变量。