DATE : 2008/10/13 (Mon)
はじめに
JavaScript 向けテスティングフレームワーク JSUnit は、現在のバージョン(2.2alpha11)では Firefox 3 上で動作しない場合があります。Firefox 3 では、ローカルにあるファイルを Firefox に読み込んだ際に、そのファイルからアクセスできるディレクトリに制限が設けられています。標準では、読み込んだファイルと同じディレクトリかそのサブディレクトリしかアクセスすることができません。テストを起動する TestRunner とテスト用のページとが別の階層のディレクトリにあると、TestRunner からテスト用のページにアクセスできなくなってしまいます。
Firefox 3 の「security.fileuri.strict_origin_policy」設定を false に変える
その制限を解除するために「security.fileuri.strict_origin_policy」設定を変更します。この設定は読み込まれたローカルのファイルからアクセスできるディレクトリの制限を設定するもので、標準では同じディレクトリかそのサブディレクトリ(true)に設定されています。そこで、「about:config」を開き、「security.fileuri.strict_origin_policy」設定を false に設定します。こうすることで、ローカルのファイルからアクセスできるディレクトリに制限がなくなります。この結果、TestRunner とテスト用のページとが別の階層のディレクトリにあっても JSUnit を使用できるようになります。
ただし、この設定の変更は Firefox 3 のセキュリティ設定を緩めてしまうことになります。余裕があれば、開発作業用のプロファイルを作成することをおすすめします。
テスト対象ページを testPage パラメータで指定する
TestRunner にあるファイルを選択するボタンも、Firefox 3 上ではうまく動作しません。その場合、TestRunner の URL の後に、「?testPage=C:/abcd/efg.html」(「/」は「\」でもかまいません)という風に testPage パラメータを付けて、そこでテストページ、またはテストスイートのページを指定します。
注意
なお、JSUnit はテストメソッドの間違いがあれば指摘してくれますが、テストページの HTML の記述が間違えていた場合やテストの構成に失敗していた場合には何も警告を出しません。上記の操作を行った上でも何も変化がない場合は、テストコードを HTML 部分も含めてチェックしてください。
(;^ω^)始めの問題が解決した後に、テストコードの構成の間違いでまたしばらく時間を費やしてしまいました。