在 Mocha 测试中绕过 ESLint 的 `no-unused-var` for Should
Bypass ESLint's `no-unused-var` for Should in a Mocha test
我在我所有的文件上使用 ESLint,包括测试文件,使用 no-unused-var: true
规则。我在我的 Mocha 测试中使用 Should.js,在其中一个文件中,我在 should
变量上遇到错误。与其他测试的快速比较表明,在其他文件中我至少有一行以 should
开头(即 should.not.exist(err);
),而在这个特定文件中,我只在 [=22] 中使用它=] 形式(即 a.should.equal(b)
).
如果不关闭整个文件的规则,或者将完全可读的测试强制转换为 should
的变量使用,有什么办法可以解决这个问题吗?我可以关闭 should
变量的规则吗?也许为它添加一个例外?或者(希望)更优雅的解决方案?
好吧,似乎没有一个优雅的解决方案,但我想我想出了一个近似值:我只是在我的 before()
挂钩中添加了一行,简单地说 should;
.由于这计算为 should 对象,或者换句话说 "truthy" 值,它可以被视为空操作。副作用是现在 should
变量是 "used",ESLint 不会抛出警告。
我将暂时搁置这个答案,希望你们中的一个人有更好的解决方案。
根据要求,这里是 a gist showing the hack in action。
在这个特定的文件中,您可以只要求而不是声明。
var should = require('should');
改为
require('should');
我在我所有的文件上使用 ESLint,包括测试文件,使用 no-unused-var: true
规则。我在我的 Mocha 测试中使用 Should.js,在其中一个文件中,我在 should
变量上遇到错误。与其他测试的快速比较表明,在其他文件中我至少有一行以 should
开头(即 should.not.exist(err);
),而在这个特定文件中,我只在 [=22] 中使用它=] 形式(即 a.should.equal(b)
).
如果不关闭整个文件的规则,或者将完全可读的测试强制转换为 should
的变量使用,有什么办法可以解决这个问题吗?我可以关闭 should
变量的规则吗?也许为它添加一个例外?或者(希望)更优雅的解决方案?
好吧,似乎没有一个优雅的解决方案,但我想我想出了一个近似值:我只是在我的 before()
挂钩中添加了一行,简单地说 should;
.由于这计算为 should 对象,或者换句话说 "truthy" 值,它可以被视为空操作。副作用是现在 should
变量是 "used",ESLint 不会抛出警告。
我将暂时搁置这个答案,希望你们中的一个人有更好的解决方案。
根据要求,这里是 a gist showing the hack in action。
在这个特定的文件中,您可以只要求而不是声明。
var should = require('should');
改为
require('should');