MavenからのSeleniumによるテストの実行

SeleniumのテストケースはJavaで作成しています。当初、SeleniumIDEを使用してHTMLのテストケースを作成していたのですが、テスト前にDBにテストデータを挿入したり、環境設定を初期したりする必要があったのでJavaに変更しました。SeleniumIDEでJava形式で出力して、Eclipseで追加や修正を行っています。

HTMLからJavaへの変換には、selenium-server.jarに含まれるXlateHtmlSeleneseToJavaというクラスを使用します。↓のような感じで特定のディレクトリにあるHTMLのテストケースをJava形式に変換できます。

java -cp .;selenium-server.jar org.openqa.selenium.server.testgenerator.XlateHtmlSeleneseToJava 出力ソースディレクトリ  -dir ソースディレクトリ -suite -package パッケージ名

−suiteをつけるとフォルダ毎にTestSuiteも生成してくれます。ただ、中にコメントを入れていたりHTMLによっては途中で落ちてしまうこもがあるみたいです。。assertEvalなど正しく変換されないコマンドもありました(これは私のHTMLの書き方が悪かったのかもしれません)。

JavaからのSeleniumテストの実行はWeb+DB Press Vol36の記事(PDF)を参考にさせていただきました。

Seleniumサーバの起動と停止は、テストクラス(の親クラス)にてsetUp()およびtearDown()メソッドで行うようにしていました。この方法だと個別のテストを実行する場合にはよいのですが、Mavenからまとめて実行する場合にア、テストのたびにサーバの起動・停止を繰り返すことになります。ただでさえSeleniumのテストは時間がかかるので、Mavenの"integration-test"実行前後にサーバの起動と停止を行うようにしたい、という昨日のエントリにつながります。