gpt4 book ai didi

node.js - Mocha,如何忽略 node_modules 文件夹

转载 作者:搜寻专家 更新时间:2023-10-31 22:40:42 25 4
gpt4 key购买 nike

我正在尝试创建一个测试环境,其中所有源文件与其测试代码并排放置。这是因为很容易跟踪哪个文件没有其测试代码。以下是运行构建后我的目录示例

built/api/a.js
built/api/a-test.js
built/api/b.js
built/api/b-test.js
built/index.js
built/index-test.js
built/node_modules/...
built/package.json
src/api/a.js
src/api/a-test.js
src/api/b.js
src/api/b-test.js
src/index.js
src/index-test.js
src/package.json
package.json

我将通过运行“npm test”来运行我的测试,下面是我的 package.json 内容:

{ "name": "sample", 
"scripts": {
"build": "babel ./src -d ./built && cd built && npm install",
"test": "mocha built/**/*-test.js"
},
"devDependencies": {
"babel-cli": "^6.18.0",
"babel-core": "^6.18.0",
"mocha": "^3.1.2"
}
}

我的问题是如何跳过 node_modules 文件夹中名称恰好以 -test.js 结尾的文件

最佳答案

派对有点晚了(13 个月以上!?),但是......

Mocha 不支持开箱即用。你需要使用你的 glob-fu 并变得有点花哨。在你的命令行上运行这样的东西应该可以解决问题:

mocha './built/{,!(node_modules)/**}/*-test.js'

glob 模式 {,!(node_modules)/**}

Take entries in the current directory, or in any subdirectory of the current directory, regardless of depth, except for ones rooted in ./build/node_modules.

请注意,在 OS X 或 Linux boxen 上,单引号本质上是必需的。保留为裸词(未加引号)或用双引号引起来,您将获得 shell 通配符而不是 mocha 使用的内部 glob(),因此您不太可能以获得您可能期望的结果...除非您有一个非典型的外壳。

Windows shell 只支持双引号...而且它没有命令行通配符,所以在 Windows 上,您可能希望不使用引号(但不要,错误,引用 我在上面)。

一个更好的、更平台无关的方法是将 glob 模式放在你的 test/mocha.opts 文件中,因此:

--require ./test/setup.js
--colors
--inline-diffs
./built/{,!(node_modules)/**}/*-test.js

干杯!

关于node.js - Mocha,如何忽略 node_modules 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com