在我的测试中柴,我经常发现自己想要使用他们的主张是一样的东西.to.be.empty,.to.be.true等等,因为我觉得他们更清洁,而不是读.to.be.length(1)或.to.be.equal(true).然而,这打破了我的linter(我正在使用默认的Airbnb linting).
我可以使用// disable-eslint-line语法,但是我必须将它添加到每个读取的内容中,这看起来很乏味.
我也读过关于DirtyChai库的内容,但这需要我回到我的整个测试库中,为它们添加括号,这些似乎是我不应该做的只是为了让我的linter传递它应该可能的东西一开始就好.
有没有人知道比我上面概述的更好的方法来处理这个问题?
Nic*_*ett 48
您可以采取几种解决方案/方法.您可以使用eslint-disable相关文件顶部的整个文件禁用规则:
/* eslint-disable no-unused-expressions */
expect(someTrueValue).to.be.true;
Run Code Online (Sandbox Code Playgroud)
但是,在每个测试文件的顶部添加它也可能很乏味.另一个选项是为特定文件夹中的所有文件禁用此规则(这也允许您禁用通常禁用但在测试中变得麻烦的其他规则,例如.eslintc使用时Configuration Cascading).
您可以通过将overrides 配置文件放在与测试文件相同的目录中来配置为禁用该规则.这允许您对所有其他规则使用默认配置,而忽略该规则仅专门针对该文件夹中的文件.ESLint称之为.eslintrc.
小智 26
刚刚找到了使用相对全局模式的另一个选项:
在您的.eslintrc文件中:
overrides: [
{
files: "*.test.js",
rules: {
"no-unused-expressions": "off"
}
}
]
Run Code Online (Sandbox Code Playgroud)
将jonalvarez 的回答与Ihor Diachenko 的回答结合起来,正是我想要的:
npm install --save-dev eslint-plugin-chai-friendly
// .eslintrc.js
module.exports = {
// ...
plugins: ['chai-friendly'],
overrides: [{
files: '*.test.js',
rules: {
'no-unused-expressions': 'off',
'chai-friendly/no-unused-expressions': 'error',
},
}],
// ...
}
Run Code Online (Sandbox Code Playgroud)
这样,no-unused-expression规则只会在*.test.js文件中被覆盖,no-unused-expression并且仍然会保留一条规则来捕获测试文件中与chai.
| 归档时间: |
|
| 查看次数: |
17997 次 |
| 最近记录: |