Linting文件具有多个版本的Javascript /不同环境

时间:2016-06-02 13:27:47

标签: javascript angularjs protractor ecmascript-6 eslint

我的量角器测试在同一个文件中有多个版本的Javascript。在节点中运行的大部分测试都是ES6。比方说,例如:

return new Promise((resolve, reject) => {
   ...
});

然后,在同一个文件中,传递给browser.executeScript的定位器和函数(根据我的理解)在浏览器中运行(使用浏览器支持的任何版本)。

browser.executeScript(function() {
  window.localStorage.clear();
});

有没有办法我可以配置eslint(或构造我的测试)来使用不同的规则将传递给executeScript的函数lint到文件的其余部分?例如,从我的测试中,

browser.executeScript(function() {
  /* eslint-env browser */
  window.localStorage.clear();
});

似乎使eslint将浏览器全局变量添加到整个文件中,而不仅仅是在它声明的函数中。

1 个答案:

答案 0 :(得分:1)

您似乎可以构建项目,将辅助函数放在一个可以使用一组规则绘制的位置,并将测试放在另一个可以使用不同规则集的地方。您可以从测试文件中获取辅助函数:

//helperScripts.js
module.exports = {
    clearLocalStorage: function() { window.localStorage.clear(); }
}

//testFile.js
var helperScripts = require('../otherFolder/helperScripts.js');
browser.executeScript(helperScripts.clearLocalStorage);