gpt4 book ai didi

javascript - 如何让 mocha 递归地在所有子文件夹中执行测试?

转载 作者:行者123 更新时间:2023-12-02 14:52:38 24 4
gpt4 key购买 nike

我将我的测试分组在文件夹中,如下所示:

test/
├── unit/
├── integration/
└── acceptance/

在上述每个文件夹中,都有一些测试文件(例如test.js)

我使用以下命令执行不同的测试套件:

mocha test/unit/**/*.js
mocha test/integration/**/*.js
mocha test/acceptance/**/*.js

我最近决定在 test/unit 中添加一个子文件夹,以便稍微组织一下:

test/
└── unit/
├── subfolder/
│ └── new.test.js
├── foo.test.js
└── bar.test.js

但是现在 mocha 只在 new.test.js 中执行测试。

我认为 /**/*.js 意味着它会递归地在所有文件夹中查找 .js 文件,但这不是我所看到的行为。这是错误还是我的误解?

最佳答案

通过将那些完全相同的模式用引号括起来,mocha 将解析这些模式,而不是 bash:

"scripts": {
"test:unit": "mocha \"test/unit/**/*.js\""
}

幸运的是,mocha 按预期解析了模式,并将递归地查找 test/unit 中的所有 .js 文件,包括任何级别的子文件夹.

TL;DR 无需进一步阅读,除非您尝试用 mocha 之外的东西做类似的事情。下面是我对 bash 的文件模式匹配的了解:

没有引号,我当时无法让它在超过两个级别上工作:

mocha test/unit/**

以上匹配test/unit 和第一级子文件夹中的所有文件,但这将匹配任何文件而不仅仅是.js

mocha test/unit/{,**/}*.js

现在我们只匹配 .js 文件,但仍然只匹配 test/unit 和第一级子文件夹。

关于javascript - 如何让 mocha 递归地在所有子文件夹中执行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812801/

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