Mocha.opts已弃用,如何迁移到Package.json?
我正在做一个庞大的项目,自从上周我更新了mocha,现在我们收到了警告:
DeproationWarning:不推荐通过mocha.opts进行配置,并且 将从未来版本的摩卡中删除。使用RC文件或 而是Package.json。
我想将选项迁移到Package.json,但没有好的迁移指南。在GitHub上,所有有类似问题的帖子都会得到"参见文档"的回答。但是这些文档没有说明如何将一个选项从mocha.opts转移到Package.json,也没有关于它应该如何格式化的信息。我能找到的唯一一件事就是"spec"属性是文件运行的模式。在我看来,没有其他隐含的东西。
我们的mocha.opts文件:
--reporter dot
--require test/mocha.main
--recursive src/**/*.test.js
--grep @slow --invert
我的尝试不起作用:
"mocha": {
"reporter": "dot",
"require": "test/mocha.main",
"spec": "src/**/*.test.js",
"grep": "@slow --invert"
},
请解释在使用上面mocha.opts中的选项时,我应该如何格式化此配置块以实现相同的行为
解决方案
我也遇到了一些困难,无法找到迁移到新标准的确切解决方案,最终可以解决这些问题。我希望我不会太晚,我仍然可以帮助你。
因此,首先需要一个新的配置文件来替换mocha.opts。Mocha现在提供了相当多的文件格式变体,可以用于它。您可以找到这些here in their GIT。我以.mocharc.json
为例,并将使用它进行进一步的示例。虽然添加它并没有改变任何事情,但它对您也没有任何影响。
陷阱是将mocha测试脚本指向package.json
中的此配置文件。在您的package.json
中的脚本部分的测试脚本中提供--config
标志。
"scripts": {
"test": "mocha --config=test/.mocharc.json --node-env=test --exit",
"start": "node server"
}
现在您可以在.mocharc.json
文件中更新您的配置,它们应该正确反映。下面是它的一个例子。
{
"diff": true,
"extension": ["js"],
"package": "../package.json",
"reporter": "spec",
"slow": 1500,
"timeout": 20000,
"recursive": true,
"file": ["test/utils/helpers.js", "test/utils/authorizer.js"],
"ui": "bdd",
"watch-files": ["lib/**/*.js", "test/**/*.js"],
"watch-ignore": ["lib/vendor"]
}
我使用file
属性来定义哪些文件应该首先执行,因为它们需要首先执行。它们将按照您在文件数组中提供的顺序执行。您可以使用的另一个属性是slow
,它的值定义了mocha是否认为执行任何测试用例所花费的时间都很慢。
相关文章