我的 Protractor 测试在同一个文件中有多个版本的 Javascript。在 Node 中运行的大部分测试都是 ES6。举例来说:
return new Promise((resolve, reject) => {
...
});
然后,在同一个文件中,传递给 browser.executeScript 的定位器和函数(根据我的理解)在浏览器中运行(使用浏览器支持的任何版本)。
browser.executeScript(function() {
window.localStorage.clear();
});
有没有一种方法可以配置 eslint(或构建我的测试)以使用与文件其余部分不同的规则来检查传递给executeScript 的函数?例如,根据我的测试,
browser.executeScript(function() {
/* eslint-env browser */
window.localStorage.clear();
});
似乎让 eslint 将浏览器全局变量添加到整个文件中,而不仅仅是在它声明的函数中。
最佳答案
似乎您可以构建您的项目,将辅助函数放在一个可以用一组规则连接的地方,并将您的测试放在另一个可以用一组不同的规则连接的地方。您可以从测试文件中获取辅助函数:
//helperScripts.js
module.exports = {
clearLocalStorage: function() { window.localStorage.clear(); }
}
//testFile.js
var helperScripts = require('../otherFolder/helperScripts.js');
browser.executeScript(helperScripts.clearLocalStorage);
关于javascript - 具有多个版本的 Javascript/不同环境的 Linting 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37593270/