otiai10/kanColleWidget — pull request #248 by gong023 (2013-11-25 09:38:11+00:00)
Title: Feature/run test in option page

## OverView
- test ビルドを新規作成し、オプションページで jasmine を走らせるようにする変更です。

## Intention
現在、testem でテスト環境を整備する意図が見られますが、testem には chrome オブジェクトが存在しないという大きな問題があります。

モック用の chrome オブジェクトを作っているようですが、それ自体が複雑になると、今度は chrome モック自体のバグを疑わなければならない事態になります。

それよりも、chrome 上でテストケースを実行したほうが賢明であると考え、本 pull request を作成しました。

## Detail
- ```cli/build``` でテスト用のビルドを作成します。
- ```release/test.kanColleWidget``` には、test用の ```manifest.json``` を読み込ませます。
- test用の ```manifest.json``` を読み込むと、オプションページに jasmine の実行結果が表示されるようになります。

## Test
手元で ```cli/buid``` を実行し、```release/test.kanColleWidget/``` のオプションページに ```SampleSpec.js``` の実行結果を表示できることを確認しました。

![](https://dl.dropboxusercontent.com/u/27113412/img/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-11-25%2016.22.41.png)

## Problem
- ```tests``` ディレクトリの立ち位置が微妙です。
- 今の配置だと```test.kanColleWidget``` 内で ```src/tests``` を変更しても反映されません。
- なので、```release/test.kanColleWidget/src/tests``` から親ディレクトリへのシンボリックリンクにしようかなとも思いました
- が、```release``` 以下で修正しながら開発みたいなことそもそもしてなさそうなので、ちょっとどうすべきかなと思って何もせずにいます。
- ```release/test.kanColleWidget/``` ではオプションページが使えません。
- そのため、オプションを変更するようなヘルパーを書く必要があるかもしれません。（それでも chrome オブジェクトのモックを全て作るよりはマシかと思いますが）
- ```tests/lib/``` に standalone の jasmine を読み込ませているのはダサい。
- 気になるようであればなんかうまいことやって下さい。
- testemの扱いも考えたほうが良い気がします。（これはちょっと余計な口出しですが）
- 個人的には chrome extension のテストで headless ブラウザ使うのは厳しいのかなあと