2012-01-14 3 views
4

npmからnode-qunit(stable)をインストールしましたが、テストが動作していないようです。私のソースファイルはスコープに含まれていないようです。node-qunitに私のソースファイルがスコープに含まれていません

./source/myscript.js:

var myObj = { 
    a : true 
} 

./test/tests.js:

test("that a is true", function() { 
    ok(myObj.a); 
}); 

./test/runner.js:

var runner = require('qunit'); 
runner.run({ 
    code : './source/myscript.js', 
    tests : './test/tests.js' 
}); 

。 /メイクファイル:

test : 
<tab>node ./test/testrunner.js 

.PHONY: install test 

make testを実行すると、'ReferenceError: myObj is not defined'というエラーが発生します。エラーが発生する可能性があるため、ソースファイルが実行されます。グローバルスコープには含まれていないようです。 node-qunit readmeの指示に従って、コマンドラインから実行すると機能しません。誰でもこれを稼働させる方法を知っていますか?

答えて

5

あなたは何もエクスポートしていません。背後では、node-qunitはrequireを使用して、指定されたモジュールをロードします。

- モジュールが require dとするとき、変数を公開するには、 exportsオブジェクト(または独自のオブジェクトが exports変数に割り当てる)

;オブジェクトリテラルで構文エラーもあります)に追加する必要が

これは私の作品:

./source/myscript.js:

exports.myObj = { 
    a: true 
} 

./test/tests.js:

QUnit.module('tests') 

test("that a is true", function() { 
    ok(myObj.a) 
}) 

./test/runner.js:

var runner = require('qunit') 

runner.run({ 
    code : './source/myscript.js' 
, tests : './test/tests.js' 
}) 
+0

感謝。私はあなたが物を輸出しなければならなかったことを気付かなかった。そして、 ';'は質問のタイプミスです...私はそれを取り出しました。 –

+0

あまりにも良い編集...この質問を見つける可能性のある他の人にはさらに詳細になります。 –

+0

元のソースファイルを変更せずにオブジェクトをエクスポートする方法はありますか? – Martijn

関連する問題