書き物

技術とか作った物の話とか愚痴文句感想など

FlashDevelop で flexcover を動かしてカバる

テストには flexunit4を、そのテストケースがコードを網羅しているかの確認に、 flexcover が使えます。今回は flexcover の環境を整えて、実際に使ってみます。

実施環境

  • Flex 3 SDK Version 3.2.0 build 3958
  • FlashDevelop 3.0.3 RTM
  • flexcover v0.81

Flex 3 SDKAir のランタイム、FlashDevelop は導入済みとします。FlashDevelop でカバレッジを測定したいプロジェクトを何かしら作っておいて下さい。

環境構築

flexcover ダウンロード、展開

flexcover - Project Hosting on Google Code

↑の「Downloads」から「flexcover-0.81.zip」をダウンロードし、適当な場所に展開します。展開して出来たフォルダ名は「flexcover-0.81」とします。

flexcover 用 Flex 3 SDK 構築

既存の Flex 3 SDK のフォルダをコピーし、フォルダ名を「flexcover_sdk_3」に変更します。(何でもいいです。)

展開してできたフォルダ「flexcover-0.81」中の「sdk-modifications-3_2」フォルダの中身(frameworks、lib)を「flexcover_sdk_3」へ上書きコピーします。

FlashDevelop グローバル設定

コンパイルに使う Flex SDK を切り替え。「Tools>Program Settings...>AS3Context>Language>Flex SDK Location」に上記「flexcover_sdk_3」のパスを設定。

FlashDevelop プロジェクト毎の設定

「Project>Properties>Compiler Options>Advanced>Additional Compiler Options」へ「-coverage-metadata=<任意のファイルパス>.cvm」を設定。

環境構築確認

これで FlashDevelop 上で F8 とか押してコンパイルして下さい。コンパイルが成功したら、上記コンパイルオプション「-coverage-metadata」に指定したパスへ cvm ファイルが出来たことを確認して下さい。これが出来ていれば問題無しです。

flexcover を使ってみる

CoverageViewer のインストー

「flexcover-0.81」フォルダ内の「CoverageViewer.air」を実行します。

CoverageViewer でカバレッジを見る

インストールした CoverageViewer を実行します。

f:id:asahiufo:20090919014331j:image

「Load Files...」ボタンを押して環境構築確認で見た cvm ファイルを選択します。

f:id:asahiufo:20090919014516j:image

この段階では未実行ということで、全実行回数は 0 件、カバレッジは 0% です。問題ありません。

続いて環境構築確認のコンパイルで出来た swf ファイルを実行します。適当にいじり倒します。

f:id:asahiufo:20090919014901j:image

実行後、 CoverageViewer 画面を確認すると、実行結果が反映されます。今回は MyGameLib のテストを実行しました。テストスイート以外、全コードが 100% 実行できていることが分かります。今のところ、テストでコードの全経路は実行できているようです。よかったよかった。

後はコード修正、コンパイル、swf 実行でカバレッジは見ていけるようです。ソースファイルが増えたら、cvm ファイルを読み直して swf 実行...という流れでいけるようです。

後書き

これでケース漏れを視覚で確認できますね!!!!!!!!!!!!!!!!!!!!1

  • FlashDevelop って、Flex SDK のバージョンの切り替えを簡単にできないんですかね? -debug オプションの true、 false で切り替えるとか...。
  • カバレッジって、限界値のテスト漏れは検知できないんですよね。気をつけます。

追記

flexcover を使うタイミング - 書き物