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

标签 javascript angularjs protractor ecmascript-6 eslint

我的 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/

相关文章:

javascript - Controller Angularjs、服务或父 Controller 之间的通信

junit - jasmine.JUnitXmlReporter 报告可视化工具

javascript - n* 数组中的替代项合并

javascript - Promise 解析器/拒绝器可以触发它的对立面吗?

javascript - ng-click 不适用于 <li> 元素

ruby - 获取 TypeError - 无法克隆符号 : error when using active_model_serializer

javascript - 在特定索引处附加选择选项

javascript - angular-ui-tinymce 指令和通过文件浏览器上传图像

testing - 使用 WebStorm 调试单个 Protractor 文件

protractor - 一个期望中的多个条件