Javascript &引用;未声明变量";Cloud9摩卡测试中的警告

Javascript &引用;未声明变量";Cloud9摩卡测试中的警告,javascript,unit-testing,node.js,mocha.js,cloud9-ide,Javascript,Unit Testing,Node.js,Mocha.js,Cloud9 Ide,我对node.js和用于单元测试的框架Mocha是新手,但我在Cloud9IDE中创建了几个测试,只是为了看看它是如何工作的。代码如下所示: var assert = require("assert"); require("should"); describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', fun

我对node.js和用于单元测试的框架Mocha是新手,但我在Cloud9IDE中创建了几个测试,只是为了看看它是如何工作的。代码如下所示:

var assert = require("assert");
require("should");

describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return -1 when the value is not present', function(){
      assert.equal(-1, [1,2,3].indexOf(5));
      assert.equal(-1, [1,2,3].indexOf(0));
    });
  });
});

describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return the index when the value is present', function(){
      assert.equal(1, [1,2,3].indexOf(2));
      assert.equal(0, [1,2,3].indexOf(1));
      assert.equal(2, [1,2,3].indexOf(3));
    });
  });
});
如果我在控制台中键入mocha,测试就可以工作,但是IDE在“descripe”和“it”的行中显示警告,因为它表示变量尚未声明(“undeclared variable”)

我想知道我应该做些什么来避免这些警告


谢谢。

这是因为
mocha
“可执行文件”将您的测试包装在
require
s中,以使用mocha函数(
description
,以及
it
)。查看
节点模块/mocha/bin
目录中的
mocha
\u mocha


另一方面,
cloud9
尝试使用纯
节点
可执行文件解析所有符号,因此您必须手动
要求
所有内容。

在cloud9中,您可以在文件顶部添加全局提示作为注释,并删除警告。 e、 g


那么,我手工需要什么呢?因为我试着去做var mocha=require(“mocha”);把代码改成摩卡咖啡,描述一下。。。警告消失了,但当执行摩卡时失败了。@Juanillo我不确定是否有一个简单的解决方法。您可以强制cloud9运行您的mocha测试,但这并不能解决未声明变量的问题。好的,谢谢,我对此很好奇,因为我是这个平台的新手,但我想知道有经验的程序员是否会在这种情况下做些什么。但似乎其他真正的项目也在使用类似代码的摩卡咖啡。也许他们在cloud9中工作时忽略了警告,但我真的很惊讶,在一个非常严肃的项目中,代码可能会出现警告。我认为正确的语法是
/*global,请在前面描述它*/
。另见
**/* global describe it before */**

var expect = require('chai').expect;


describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return -1 when the value is not present', function(){
        expect(true).to.equal(true);
    })
  })
})