我有一个类似于此的量角器测试脚本文件:
var TestPage = function () {
this.detailsTab = element(by.id('detailsTab'));
..
它给了我很多错误,说element
和by
没有定义。有没有办法可以阻止所有这些提示错误出现?
答案 0 :(得分:11)
从protractor tutorial page你可以看到这些全局变量是由Protactor创建的:
这使用全局
element
和by
,它们也是由 量角器。
所以你需要一种告诉JSHint关于这些全局变量的方法。您可以在JSHint的配置中执行此操作。 http://www.jshint.com/docs/
内联配置方法
可以配置JSHint的方法之一是使用添加特殊的内联注释。以下是摘自JSHint文档页面的摘录,该页面描述了如何使用内联注释配置方法指定全局。
globals - 一个告诉JSHint有关已定义的全局变量的指令 别处。如果value是
false
(默认值),JSHint会考虑这一点 变量为只读。将其与undef
选项一起使用。
/* global MY_LIB: false */
更新:因此,对于量角器,内联配置将是:
/* global element */
/* global by */
或者@runTarm建议这个浓缩语法也可以工作:
/* global element, by */
配置文件方法
您还可以使用配置文件配置JSHint。检查documentation以了解指定配置文件的不同方法。从文档页面我们以下摘录解释了如何编写文件以指定全局变量。
配置文件是一个简单的JSON文件,它指定了哪个JSHint 打开或关闭的选项。例如,将启用以下文件 关于未定义和未使用的变量的警告,并告诉JSHint有关a 名为
MY_GLOBAL
的全局变量。
{
"undef": true,
"unused": true,
"predef": [ "MY_GLOBAL" ]
}
答案 1 :(得分:4)
这是一个示例.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
}
}
答案 2 :(得分:1)
如果你想摆脱量角器的jshint警告,更新.jshintrc是最好的方法。为每个文件添加全局覆盖是相当繁琐的。
将以下内容添加到__rdtsc()
文件中(您应该能够在包含测试的目录中添加.jshintrc文件,而不是根源/所有源文件)
.jshintrc:
#include <x86intrin.h>
这是做什么的:(你可能不需要jasmine / mocha取决于你如何编写测试)
.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
}
}
-