具有多个版本 Javascript / 不同环境的 Linting 文件
Linting file with multiple versions of Javascript / different environments
我的量角器测试在同一个文件中有多个版本的 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 将浏览器全局变量添加到整个文件,而不仅仅是在它声明的函数中。
您似乎可以构建您的项目,将辅助函数放在一个可以使用一组规则的地方,并将您的测试放在另一个可以使用一组不同规则的地方。您可以从测试文件中获取辅助函数:
//helperScripts.js
module.exports = {
clearLocalStorage: function() { window.localStorage.clear(); }
}
//testFile.js
var helperScripts = require('../otherFolder/helperScripts.js');
browser.executeScript(helperScripts.clearLocalStorage);
我的量角器测试在同一个文件中有多个版本的 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 将浏览器全局变量添加到整个文件,而不仅仅是在它声明的函数中。
您似乎可以构建您的项目,将辅助函数放在一个可以使用一组规则的地方,并将您的测试放在另一个可以使用一组不同规则的地方。您可以从测试文件中获取辅助函数:
//helperScripts.js
module.exports = {
clearLocalStorage: function() { window.localStorage.clear(); }
}
//testFile.js
var helperScripts = require('../otherFolder/helperScripts.js');
browser.executeScript(helperScripts.clearLocalStorage);