我有这个(在gulpfile.js中):
var gulp = require("gulp"); var mocha = require("gulp-mocha"); gulp.task("test", function() { gulp .src(["./**/*_test.js", "!./node_modules/**/*.js"]); });
它的工作原理.
我想从mocha命令复制相同的行为,不包括"node_modules"文件夹,运行npm test(在package.json中):
"scripts": { "test": "mocha **\\*_test.js !./node_modules/**/*.js*", }
它不起作用.
我正在使用Windows.
有什么建议吗?
我能够使用参数中的globbing模式来解决这个问题mocha
.像你一样,我不想把我的所有测试放在一个tests
文件夹下.我希望它们与他们测试的类位于同一目录中.我的文件结构如下所示:
project |- lib |- class1.js |- class1.test.js |- node_modules |- lots of stuff...
从project
文件夹运行这个为我工作:
mocha './{,!(node_modules)/**}/*.test.js'
哪个匹配*.test.js
树中的任何文件,所以它的路径根本不长./node_modules/
.
这是一个用于测试我认为有用的glob模式的在线工具.
对于Windows用户 此脚本将完美运行
"test": "mocha \"./{,!(node_modules)/**/}*.test.js\"",
我希望这将有所帮助。
干杯!
我不是摩卡或蚂蚁风格模式的大师,但也许不可能在mocha命令行中排除特定路径.
您可以将所有测试文件放在测试文件夹下,并将package.json设置为:
"scripts": { "test": "mocha ./test/**/*_test.js" }
您还可以提供多个起始文件夹:
"scripts": { "test": "mocha ./test/**/*_test.js ./another_test_folder/**/*_test.js" }
您可以通过传递opts排除摩卡中的文件
mocha -h|grep -i exclude --excludea file or glob pattern to ignore (default: ) mocha --exclude **/*-.jest.js
此外,您还可以创建一个test/mocha.opts
文件并将其添加到此处
# test/mocha.opts --exclude **/*-test.jest.js --require ./test/setup.js
如果要排除特定文件类型,可以执行以下操作
// test/setup.js require.extensions['.graphql'] = function() { return null }
当使用mocha无法理解的模块加载器(例如webpack)处理扩展时,这很有用。