12

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

摩卡需要制作。找不到适用于 Windows 的 make.exe

还有这个

Node.js 找不到模块 - 在 Windows 上干扰 cygwin

我在 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(顺便说一句,他为什么不在 node_modules 子目录中寻找 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

我该怎么办?

4

5 回答 5

22

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

于 2015-06-22T15:54:47.137 回答
3

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

  "scripts": {
      "test": "node node_modules/mocha/bin/mocha --recursive"
  },
于 2019-12-09T14:29:31.560 回答
1

您应该使用msysgit - 它带有 make。

于 2012-07-24T18:47:56.010 回答
1

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

这是因为 mocha 不是 Windows 环境的变量。

于 2020-02-04T00:39:22.820 回答
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 上运行。

于 2013-05-16T22:33:32.803 回答