如何在我的web文件中为全局变量停止jshint错误?

时间:2014-07-11 10:58:06

标签: angularjs protractor

我有一个类似于此的量角器测试脚本文件:

var TestPage = function () {

    this.detailsTab = element(by.id('detailsTab'));
    ..

它给了我很多错误,说elementby没有定义。有没有办法可以阻止所有这些提示错误出现?

3 个答案:

答案 0 :(得分:11)

protractor tutorial page你可以看到这些全局变量是由Protactor创建的:

  

这使用全局elementby,它们也是由   量角器。

所以你需要一种告诉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)

量角器的实际.jshintrc配置

如果你想摆脱量角器的jshint警告,更新.jshintrc是最好的方法。为每个文件添加全局覆盖是相当繁琐的。

将以下内容添加到__rdtsc()文件中(您应该能够在包含测试的目录中添加.jshintrc文件,而不是根源/所有源文件)

.jshintrc:

#include <x86intrin.h>

这是做什么的:(你可能不需要jasmine / mocha取决于你如何编写测试)

  • .jshintrc
  • 等内容需要茉莉花
  • mocha是 { ... 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 } } -
  • 之类的必需品
  • 全局变量是量角器定义为全局变量的其他东西 - 请参阅https://github.com/angular/protractor/blob/master/lib/runner.js#L152