Angularjs 如何停止全局web文件中的jshint错误?
我有一个量角器测试脚本文件,如下所示:Angularjs 如何停止全局web文件中的jshint错误?,angularjs,protractor,Angularjs,Protractor,我有一个量角器测试脚本文件,如下所示: var TestPage = function () { this.detailsTab = element(by.id('detailsTab')); .. 它给了我很多错误,说element和by没有定义。有没有办法阻止所有这些提示错误出现?从中可以看出,这些全局变量是由Proactor创建的: 这将使用全局元素和by,它们也是由创建的 量角器 所以你需要一种方法来告诉JSHint这些全局变量。您可以在JSHint的配置中执行此操作
var TestPage = function () {
this.detailsTab = element(by.id('detailsTab'));
..
它给了我很多错误,说element
和by
没有定义。有没有办法阻止所有这些提示错误出现?从中可以看出,这些全局变量是由Proactor创建的:
这将使用全局元素
和by
,它们也是由创建的
量角器
所以你需要一种方法来告诉JSHint这些全局变量。您可以在JSHint的配置中执行此操作。
内联配置方法 配置JSHint的方法之一是使用添加特殊的内联注释。下面是摘自JSHint文档页面的一段摘录,它描述了如何使用内联注释配置方法指定全局 globals-用于告诉JSHint已定义的全局变量的指令 在别处如果值是代码> false (默认值),JSHITN将考虑 变量为只读。将其与
undef
选项一起使用
更新:因此,对于量角器,内联配置为:
/* global element */
/* global by */
或者,正如@runTarm所建议的,这种简明语法也可以:
/* global element, by */
配置文件方法 您还可以使用配置文件配置JSHint。检查以了解指定配置文件的不同方式。从docs页面我们可以看到下面的摘录,它解释了如何编写文件来指定一个全局变量 配置文件是一个简单的JSON文件,用于指定哪个JSHint 打开或关闭的选项。例如,以下文件将启用 关于未定义和未使用变量的警告,并告诉JSHint关于 名为
MY\u global
的全局变量
下面是一个示例.jshint文件,其中删除了全局变量:
{
"node": true,
"browser": true,
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 4,
"latedef": true,
"newcap": true,
"noarg": true,
"quotmark": "single",
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true,
"multistr": true,
"globals": {
"after": false,
"afterEach": false,
"angular": false,
"before": false,
"beforeEach": false,
"browser": false,
"describe": false,
"expect": false,
"inject": false,
"it": false,
"jasmine": false,
"spyOn": false,
"Kinetix": false,
"$": false
}
}
量角器的实际.jshintrc配置
如果要消除量角器的jshint警告,更新.jshintrc是最好的方法。为每个文件添加全局覆盖相当繁琐
将以下内容添加到.jshintrc
文件中(您应该能够在包含测试的目录中添加.jshintrc文件,而不是源代码的根/全部)
.jshintrc:
{
... your other jshint stuff ...
"jasmine": true,
"mocha": true,
"globals": {
"angular": false,
"browser": false,
"inject": false,
"_": false,
"driver": false,
"protractor": false,
"browser": false,
"$": false,
"$$": false,
"element": false,
"by": false,
"list": false
}
}
其作用:(根据您编写测试的方式,您可能不需要茉莉花/摩卡)
- 茉莉花在
expect
- 摩卡咖啡在每次之前都是必需的
- globals是量角器定义为globals的其他对象-请参阅
如何删除关于量角器中有效全局变量的jshint警告
,以便澄清一下,您能否显示全局内联对量角器的要求。非常感谢您的帮助。@SamanthaJ您需要添加/*global element*/
和/*global by*/
我也更新了答案。/*global element,by*/
也可以
{
"node": true,
"browser": true,
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 4,
"latedef": true,
"newcap": true,
"noarg": true,
"quotmark": "single",
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true,
"multistr": true,
"globals": {
"after": false,
"afterEach": false,
"angular": false,
"before": false,
"beforeEach": false,
"browser": false,
"describe": false,
"expect": false,
"inject": false,
"it": false,
"jasmine": false,
"spyOn": false,
"Kinetix": false,
"$": false
}
}
{
... your other jshint stuff ...
"jasmine": true,
"mocha": true,
"globals": {
"angular": false,
"browser": false,
"inject": false,
"_": false,
"driver": false,
"protractor": false,
"browser": false,
"$": false,
"$$": false,
"element": false,
"by": false,
"list": false
}
}