我无法让 Mocha 按预期工作,我很想说有记录,但是(似乎)没有太多关于实际运行的文档。
我已经使用 npm
(全局和本地)安装了它,每次运行它时我都会得到:
$ mocha
mocha: command not found
好的,所以我认为它不在我的 PATH
中,所以我尝试直接运行它,
$ ./node_modules/mocha/bin/mocha
execvp(): No such file or directory
最后,我尝试点击另一个 bin
文件,得到了,
$ ./node_modules/mocha/bin/_mocha
path.existsSync is deprecated. It is now called `fs.existsSync`.
.
✔ 1 tests complete (1ms)
我怎样才能用一个命令来执行我的测试? 誓言 似乎让你,但我听说摩卡是更好的选择,我似乎无法让它正常工作。
对我在第三次尝试中遇到的错误有什么想法吗?
编辑:
我在跑,
- Ubuntu 11.10 64 位
- 节点.js 0.7.5
- npm 1.1.8
- 摩卡咖啡 0.14.1
- 应该是 0.6.0
原文由 Stephen Melrose 发布,翻译遵循 CC BY-SA 4.0 许可协议
从 npm 5.2.0 开始,npm 包含一个新命令“npx”,如果你运行它,它会变得更简单:
注意:可选参数被转发到正在执行的命令(本例中为 mocha)
这将自动从您本地安装的 mocha 中选择可执行的“mocha”命令(始终将其添加为开发依赖项,以确保您和其他所有人始终使用正确的依赖项)。
请注意,如果您没有安装 mocha,此命令将自动获取并使用最新版本,这对于某些工具(例如脚手架)非常有用,但对于您可能想要的某些依赖项可能不是最推荐的固定到特定版本。
您可以在 此处 阅读有关 npx 的更多信息
现在,如果不是直接调用 mocha,而是要定义一个自定义 npm 脚本,一个可能调用其他 npm 二进制文件的别名……
您不希望您的库测试失败,具体取决于机器设置(mocha 作为全局、全局 mocha 版本等),使用跨平台工作的本地 mocha 的方法是:
npm 为您在该特殊文件夹上的依赖项中的所有二进制文件放置别名。最后,npm 会在运行 npm 脚本时自动将 node_modules/.bin 添加到 PATH 中,所以在你的 package.json 中你可以这样做:
并调用它