我像这样在命令行上运行 Mocha:
mocha --recursive "./src/**/*.spec.js"
这很好用。但是,如果没有找到测试文件,则会抛出此错误:
cannot resolve path (or pattern) './src/**/*.spec.js'
当不存在测试时是否有办法抑制此错误消息?
(澄清一下,这是相关的,因为它是我的 React Slingshot starter kit 的一部分,因此在他们删除我的示例测试以开始他们的项目后,将不会存在任何测试)。
最佳答案
这是一个已知问题,已多次报告,例如here或 here .最相关的 GitHub 问题是这个 feature request那replaces带有更具描述性的消息的错误。希望这个 PR 能尽快合并。
目前,您可以在入门工具包中包含一个 shell 脚本,该脚本将仅在存在测试文件时执行 mocha 测试运行程序。
test.sh(需要 Bash 4.0 或更新版本以获得 globstar 支持)
#!/bin/bash
count=`ls -1 src/**/*.spec.js -name 'Prams' -type d 2> /dev/null | wc -l`
if [ "$count" -gt "0" ]; then
npm run test:mocha --silent
else
echo -e "\033[0;31mWrite some tests!" && exit 1
fi
package.json
"scripts": {
"test": "./test.sh",
"test:mocha": "mocha 'src/**/*.spec.js'"
},
不幸的是,这不适用于 glob 大括号部分 - 即使目录中有一些可用的测试但 set 中的第一个目录是空的,mocha 也会抛出错误。
关于javascript - 当没有找到测试时,Mocha 会抛出一个错误。这能被压制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35246829/