JsTestDriverでQUnitのテスト資産を利用する
テスト駆動JavaScriptを読んでいるのですが、JsTestDriver便利ですよね。
最初からJsTestDriverでテストを書いていれば理想的なのですが、そうは行かない状況もあります。
そんな時はQUnitAdapterを利用してQUnitのテストをJsTestDriver上で流すことができます。
How to ?
1. JsTestDriverのソースをダウンロードして適当な場所に置きます。今回はC:\bin\jstestdriver\jstestdriver-1.3.3d.jarに置きました。
2. 環境変数に登録しておきます。
> set JSTESTDRIVER_HOME=C:\bin\jstestdriver
3. サーバーを起動します。
> java -jar %JSTESTDRIVER_HOME%\jstestdriver-1.3.3d.jar --port 4224
4. 適当なブラウザで http://localhost:4224 にアクセスしてcaptureなんとかというリンクをクリックします。
5. テストファイルがD:\product\tests\jsに置いてあるとしましょう。D:\productにコンフィグファイルを置きます。
ついでにqunitとこちらのページからQUnitAdapterおよびequiv.jsを落としてD:\product\tests\qunitに置いてください。
コンフィグファイルはこんな感じ。名前はJsTestDriver.confにしてください。
server: http://localhost:4224 load: # Add these lines to load the equiv function and adapter in order, before the tests # (assuming they are saved to tests/qunit/) - tests/qunit/qunit.js //なぜかこれがないと動かなかった - tests/qunit/equiv.js - tests/qunit/QUnitAdapter.js # This is where we load the qunit tests - tests/js/*.js # And this loads the source files we are testing - src/js/*.js //テストしたいjsファイル
6. D:\productに移動してテスト実行します。
> java -jar %JSTESTDRIVER_HOME%\JsTestDriver-1.3.3d.jar --verbose --tests all
以上です。
注意事項
- stop(), start()関数およびAsyncTest()は動作しないので予め御了承ください。
- ぼくの環境だとなぜかequal(), deepEqual()が動きません。なんでやねん…。