我的团队偶尔会遇到开发人员推送包含 .only() 函数调用的 Karma/Protractor 测试的问题,这当然会使我们的 Jenkins 等仅运行该特定测试,从而可能会漏掉错误。因此,我想我会尝试找出一种方法来阻止这种情况发生而不被发现。
首先,我想我会考虑简单地使用 JSHint 来指出函数调用,但我似乎找不到这样做的方法。我还查看了 ESLint 的自定义插件,但我不知道如何为这种特殊情况编写插件。
你们能给我一些关于如何解决这个问题的想法吗?当然,也欢迎替代解决方案!
我的团队偶尔会遇到开发人员推送包含 .only() 函数调用的 Karma/Protractor 测试的问题,这当然会使我们的 Jenkins 等仅运行该特定测试,从而可能会漏掉错误。因此,我想我会尝试找出一种方法来阻止这种情况发生而不被发现。
首先,我想我会考虑简单地使用 JSHint 来指出函数调用,但我似乎找不到这样做的方法。我还查看了 ESLint 的自定义插件,但我不知道如何为这种特殊情况编写插件。
你们能给我一些关于如何解决这个问题的想法吗?当然,也欢迎替代解决方案!
这是一个(可能不工作的例子),如果解析器看到only()
调用,如何创建一个标记错误的插件。同样,里程可能会有所不同,但应该足以让您入门。如果它看到,这将不起作用a.only()
,我们将由您决定。
module.exports.rules = {
"no-only-call": context => ({
CallExpression: (node) => {
if(node.callee.name == "only"){
context.report(node, 'Calls to only() are disallowed');
}
}
})
};
http://esprima.org/demo/parse.html - 使用这个在线解析器来帮助您理解解析树。
https://www.npmjs.com/package/generator-eslint - 使用这个生成器来启动你的插件项目