細かい作業とOOo対応について

記事タイトルを微妙に変更。
使い方とか、はてな記法とかが良く分からん。

このマクロは、OpenOffice2.4 Calcでは、動かないようなのですが(クラスモジュールが駄目っぽい)、近々リリースされるOpenOffice3はVBA完全サポートが売りらしいので、期待大です。

でもRC4(en-us)で試してみましたが、動きませんでした。
何かおまじないが必要なのかな?
正式リリースされたら、もう少しつついてみたいと思います。

読み込み範囲の変更方法

このマクロは高速化のために、値を読む範囲を制限しています。
なので、大きなテストになると読み込み範囲を超えてしまうかもしれません。
そのときは、マクロの定数を書き換えて下さい。
当然ながら数字をでかくすればするほど、遅くなります。
マシンスペックが低い場合は、面倒だからといってExcelの扱える最大値とかにはしないほうがよいです。


対象の定数は以下の通りです。


TestSuite.COMMAND_END_ROW
テストシートを何行目まで読み込むかの設定。
デフォルトでは500行目まで。


util.COMMAND_RANGE
util.COMMAND_KEY_RANGE
コマンドマップシートで、何行目から何行目までを読むかの設定。
デフォルトでは、両方ともB2からB1000まで。基本的に同じ値を設定して下さい。
同じ値なのに2つあるのは実験中に変なことをしていた名残でしかないので、そのうちどっちかにまとめます。


他にも無意味な処理がちらほらあるみたい。致命的ではないはずだけど、気持ち悪いのでそのうち直します。

ワークシート名=suiteファイル名になるようにしました

ワークシートの名前=suiteファイル名になるようにしました。
これにより、ファイル名として不適な名前をシート名につけられなくなります。


また、先頭に「_」がついているシートは無視するようになっています。
作成中のテストなど、今はまだHTMLを生成させたくないものに使ってください。


それと、なんちゃってリファクタリングを行って、mainをすっきりさせています。
これは主に自分のため。

ちゃんと動く版commit

freeHgは直接ファイルを落とせないみたいですね。
ちょっと考えます。


それ以上にまずい事に、実験版を上げてたみたいなので、ちゃんと動く版を上げました。
慌てたせいで、コメントを日本語で入れてしまいましたが、、、


mainというマクロを実行すると、3つのテストケースを持ったsuiteが一つ出来ます。
gtestというテストだけ、正しく動作するようにしています(SelniumIDEで確認しました)。

注意点

Selenceファイル生成時、suite名と同名(今現在TestSuiteで固定です)のディレクトリがあった場合、問答無用で削除します


これで基本的操作が可能。
Excelのメニューからマクロ->mainを起動すると動き出します。
ほんとは絵付にするとか、サンプルを作ったほうがいいんだろうな。

各シートの説明

conf

  • testcase.html(A列)とsuite.html(B列)のヘッダとフッタ部分です
  • 普通に使う分には触る必要はありません
  • Seleniumのサンプルからコピーしました(ゴミが含まれているかも)

commandmap

  • コマンド定義を行います
  • 各列説明
    • 説明
      • 人間用の説明文を入れる欄です。テストケース生成には影響しません。
      • 空でも構いません。
    • key
      • 定義したコマンドを呼び出すためのキーとなります。
      • 同じキーを複数使うことは出来ません(一番上の定義が使われます)。
      • 必須項目です。
    • command
      • Seleniumのコマンド名を入れます
      • 必須項目です。
    • target
      • Seleniumコマンドの引数1を入れます。
      • 特殊記法として、$valueと$targetが使えます。
      • commandで指定したSeleniumコマンドによっては必須です。
    • value
      • Seleniumコマンドの引数2を入れます。
      • 特殊記法として、$valueと$targetが使えます。
      • commandで指定したSeleniumコマンドによっては必須です。
  • 特殊記法
    • $value
      • suiteシートの入力値欄に入れた値と置き換わります
    • $target
      • suiteシートのtarget欄に入れた値と置き換わります

suite

  • テストケース生成用の入力を行います
  • 各列説明
    • 説明
      • 人間用の説明文を入れる欄です。テストケース生成には影響しません。
      • 空でも構いません。
    • command key
      • commandmapに定義したkeyを入力します。
      • 未定義のkeyを入れるとエラーが発生します。
    • target
      • コマンド定義でtarget、valueに使われた$targetと置き換わる値を入れます。
      • HTML要素の指定(id、name、XPath)を入れることが多いと思います。
    • D列以降
      • 最上段(1行)
        • テストケースの名前(拡張子を除く)です。
        • この位置の値毎に、テストケースHTMLが作られます。
        • 値が無い場合、直前のテストケースの延長として、テストケースが生成されます。
        • 都合上、D1セルだけは必須です。
      • 2行目以降
        • 何らかの値があった場合、その行のcommand keyと結びつくコマンドを生成します。
        • 入力された値はコマンド定義でtarget、valueに使われた$valueと置き換わります。
        • コマンド生成のトリガーであるため、$valueを使っていない場合でも何らかの値が必要です。
        • 何も入力が無い場合、そのコマンドは生成されません。