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()が動きません。なんでやねん…。