【问题标题】:atom + mocha on windows = spawn mocha ENOENTatom + mocha on windows = spawn mocha ENOENT
【发布时间】:2017-10-13 13:25:00
【问题描述】:

我的目标是通过 Atom 运行 mocha 单元测试,它安装在 Windows 上,并且我的 src 代码也驻留。这应该独立于我在不同 (Linux) 机器上运行的 Meteor 应用程序。

基本上我的设置是这样的:

我有我的仓库和源代码:

c:\Users\Me\repos\meteor

我的测试在里面:

c:\Users\Me\repos\meteor\tests

我有节点:

 c:\Program Files\nodejs

"npm i -g mocha --save-dev"一起安装

我尝试使用这个包https://github.com/Tabcorp/atom-mocha-test-runner,但如果需要我可以切换到另一个包。

到目前为止我已经尝试过:

我编辑了 atom-mocha-test-runner 的设置:

Mocha command: C:\Program Files\nodejs\node_modules\mocha\.bin\mocha
Mocha command: C:\Program Files\nodejs\npm mocha

但每次我尝试通过下拉菜单(运行摩卡测试)运行我的测试时,我都会收到此错误:

Mocha Test Results:

Node binary:    C:\Program Files\nodejs\node.exe
Root folder:    C:\Source\Repos
Mocha command:  undefined
Path to mocha:  mocha
Debug-Mode:     false
Test file:      tests\unit\first.js
Selected test:  should return url

Failed to run Mocha
spawn mocha ENOENT

有谁知道我错过了什么或做错了什么?

【问题讨论】:

  • mocha-test-runner 设置中,有一个标记为Show Context Information 的复选框。如果您检查一下,运行命令,然后与我们分享结果,这可能会有所帮助。
  • @HollandWilson 完成,mocha 命令似乎有问题,但为什么呢?
  • 对我来说,mochaCommand 似乎有问题。我发现包组装命令字符串的文件(github.com/Tabcorp/atom-mocha-test-runner/blob/master/lib/…)和显示上下文的位置(github.com/Tabcorp/atom-mocha-test-runner/blob/master/lib/…)和mochaCommand据我所知不应该出现未定义。是的,当我尝试在我的机器上进行测试时,我在相同的上下文输出中遇到了同样的问题,所以绝对不是你。
  • mocha 文件一定有问题,我什至无法从我的 win 控制台运行它...
  • 当您尝试从命令行运行 Mocha 时,您看到了什么?

标签: node.js mocha.js atom-editor


【解决方案1】:

仍然不知道为什么该软件包不起作用,我将给出一个逃避的答案。如果我们弄清楚如何使其工作,您可以接受该答案。 process-palette 使您能够从 Atom 命令运行高度特定的命令行指令。下面是一个命令示例,它使用相同的热键在当前文件的项目路径中运行mocha,并且还方便地组织到自己的菜单项中:

这种方法的缺点是你必须自己知道如何使用外部程序。像mocha-test-runner 这样的包旨在消除用户的这种需求,但正如我们在这里看到的那样,有时包不知道它需要做什么。缺点是您只需学习命令足够长的时间即可设置运行它的配置,从那时起它就非常容易了。

与其他软件包相比的优势包括精确控制正在发生的事情的能力。假设您在当前项目中有多个顶级文件夹,并且它们具有不同的测试套件。像mocha-test-runner 这样的包可以从活动文件或项目中获取路径。如果开发人员选择获取项目路径,那么您将无法运行单独的测试套件。使用我共享的配置,该命令将始终在当前文件的项目文件夹的绝对路径中运行,因此将为您当时正在处理的任何文件运行测试。

【讨论】:

  • 我很欣赏替代解决方案,但我不明白如何为 mocha 设置此流程面板(我的测试命令是 BABEL_ENV=dev npm run mocha-test),即 ("mocha-test": "mocha --recursive tests/mocha")
  • 只需将命令更改为npm run mocha-test,向下滚动到环境变量部分,然后在此处添加BABEL_ENV
  • 我找到了一个正在工作的替代测试运行器:github.com/boogie666/atom-mocha,我让这个问题打开一段时间,如果没有人有解决方案,那么我接受你的回答作为唯一可能的解决方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 2019-06-27
  • 2015-11-20
  • 1970-01-01
  • 2014-11-13
  • 2021-12-09
  • 2018-12-28
相关资源
最近更新 更多