2012-11-27 17 views
6

私はnode.jsとフレームワークの単体テストで新しくなっていますが、クラウド9 IDEでいくつかのテストを作成しました。Cloud9でのMochaテストでの "宣言されていない変数"の警告

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)); 
    }); 
    }); 
}); 

私はコンソールにモカを入力した場合のテストが動作するが、それは変数がされていないことを言うのでIDEは、「説明」と「それは」あるラインでの警告を示しています。コードは次のようになります宣言された( "宣言されていない変数")。

警告を避けるためにこれらのテストをどうすればよいでしょうか。

ありがとうございました。

答えて

0

「実行可能ファイル」は、mocha関数(describe、およびit)を使用するために、requireにテストをラップするためです。 node_modules/mocha/binディレクトリにmocha_mochaを見てください。

一方、cloud9は純粋なnode実行ファイルを使用してすべてのシンボルを解決しようとしますので、手作業ですべてrequireにする必要があります。

+0

どうすればよいですか?私はvar mocha = require( "mocha")を実行しようとしたので、コードをmocha.describe ...に変更して警告が消えますが、mochaを実行すると失敗します。 – Juanillo

+0

@Juanillo簡単な回避策がないかどうかわかりません。あなたはcloud9にあなたのモカテストを実行させることができますが、それは宣言されていない変数の問題を解決しません。 – soulcheck

+0

ok、ありがとう、私はこれについて興味があり、私はこのプラットフォームで初心者ですが、経験豊富なプログラマーがこの場合何かをしているのか疑問に思っていました。しかし、他の実際のプロジェクトでも同様のコードでMochaを使用しているようです。おそらく、クラウド9で作業している間に警告を無視するだけかもしれませんが、本当に深刻なプロジェクトでは警告付きでコードを与えることができて本当に驚きです。 – Juanillo

2

クラウドでは、ファイルの先頭にグローバルのヒントをコメントとして追加して、警告を削除できます。例:

**/* 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); 
    }) 
    }) 
}) 
+0

私は、正しい構文は '/ * global * before * /'と思う。 http://stackoverflow.com/a/19572515/209727も参照してください。 –

関連する問題