qunit を使用してコマンド ラインで JavaScript 単体テストを実行しようとしているときに、問題に直面しています。
エラーを再現するためのサンプル コードを次に示します。
ファイルutil.js :
function abc() {
return 'abc';
}
if (typeof module !== 'undefined' && module.exports) {
module.exports = {
abc: abc
};
}
ファイルutil-tests.js
var qunit = require("qunit");
test("Test abc function", function () {
equal(util.abc(), 'abc');
});
これらのファイルを使用して、次のコマンドを使用してテストを実行できます (テスト結果を含む表のような出力がシェルに表示されます)。
qunit -c util:util.js -t util-tests.js
util.js に以下を追加すると壊れます
$(document).ready(function () {
/* some code here */
});
エラー出力は次のとおりです。
qunit -c util:util.js -t util-tests.js
Testing /home/mfrere/jstst/util.js ... [Error: Uncaught exception in child process.]
同じ問題:
var a = $;
また:
var a = document;
これにより、何らかの形で jQuery をインポートする必要があると思われるので、次のように jquery.js をコマンドへの依存関係として追加することを考えました。
qunit -c util:util.js -t util-tests.js -d jquery.js
上記のコマンドでは、util.js に「$」への参照が含まれていなくても、同じ「Uncaught exception」エラーが発生します。
qunit に「ドキュメント」も認識させるには、おそらく何か他のことをする必要がありますが、何をどのように行うかはわかりません。
これが私の質問です。これを機能させるにはどうすればよいですか? ブラウザーではなく、コマンド ラインでファイルをテストしたいことを覚えておくことが重要です。
セットアッププロセスで何か間違ったことをした場合に備えて、これはnode / qunitを(ubuntuの下に)インストールした方法です:
git clone git://github.com/creationix/nvm.git ~/.nvm
.bashrc に、次の行を追加しました。
source ~/.nvm/nvm.sh
ノードの特定のバージョンを選択
nvm install v0.9.2
nvm alias default 0.9
そしてインストールされたqunit
npm install -g qunit
最後に、これを .bashrc にも追加する必要がありました。
export NODE_PATH=~/.nvm/v0.9.2/lib/node_modules