【问题标题】:How to run Mocha tests on windows node.js ( Error: Cannot find module 'C:\cygdrive\c\Users )如何在 windows node.js 上运行 Mocha 测试(错误:找不到模块'C:\cygdrive\c\Users)
【发布时间】:2012-07-23 00:12:32
【问题描述】:

我正在尝试在 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 版本的 node.js。

我尝试使用 powershell 并按照建议设置别名,但我总是得到 ​​p>

> 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

我该怎么办?

【问题讨论】:

  • 请考虑接受@Bwaxxio 的正确答案!它可以工作并且不需要我更改操作系统。 :)

标签: node.js makefile cygwin mocha.js


【解决方案1】:

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

【讨论】:

  • 我发现将 project-dir\node_module\.bin 添加到路径中可以使测试的 package_json 条目按预期工作:“scripts”:{“test”:“mocha test -u bdd -R 规范"}
  • @Amitabh 我不建议将节点模块添加为 PATH 变量。 YMMV,但您将被束缚在一个版本的 mocha 项目中。
  • 在运行npm install mocha --save-dev 之后,对npm init 的简单调用为我创建了package.json 文件。我创建了一个简单的 Mocha 测试文件test.js(参见Getting Started section)并在命令行中使用npm test 运行它。很棒的答案!
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我会接受你的回答,最后太麻烦了,我只是搬到了ubuntu
    • 我经历了和你一样的挫败感,最后还是做了同样的事情——这比在 Windows 上开发要好得多:)
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      当您编写“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 上运行了我的测试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 2021-06-17
        • 1970-01-01
        • 1970-01-01
        • 2019-11-07
        • 2020-12-21
        • 2018-02-03
        相关资源
        最近更新 更多