システム開発現場の道具箱

株式会社モノクレアが運営するIT技術系のブログです。システム開発の現場で役に立つ情報を掲載しています。

EclipseでSIT−WTのソースをデバッグする

SIT-WTのテスト実行中にEclipseでSIT-WTのソースをデバッグする方法を紹介します。

デバッグにはEclipse 4.5以上が必要です。

また、SIT-WTのMavenプロジェクトがEclipseプロジェクト化されていることが前提です。 この手順についてはこちらを参照してください。

EclipseでSIT−WTのソースをデバッグするための設定 - システム開発現場の道具箱

sit-wt-runtime.jarのソースをダウンロード

Eclipseでsit-wt-runtime.jarのソースをダウンロードします。 手順は以下の通りです。

  1. プロジェクト・エクスプローラー」ビュー、または「パッケージ・エクスプローラー」ビューで プロジェクト内の「Maven依存関係」を開きます。
  2. Maven依存関係」内にある「sit-wt-runtime-xxx.jar」を右クリック>「Maven」>「ソースのダウンロード」をクリックします。
    f:id:mrno27:20160807184141p:plain

SIT-WTのソースにブレークポイントを設定

SIT-WTの任意のソースを開き、ブレークポイントを設定します。

  1. Eclipse上で下記ショートカットをタイプし、「型を開く」ダイアログを表示します。 (「ナビゲート」メニュー>「型を開く」をクリックでもOKです。)
    • Windowsの場合 : Ctrl + Shift + T
    • Macの場合 : Command + Shift + T
  2. 型を開く」ダイアログ上でブレークポイントを設定したいクラスを検索し、「OK」ボタンをクリックします。 ここでは例として「org.sitoolkit.wt.domain.tester.SitTesterTestBase」を開きます。
    f:id:mrno27:20160805202314p:plain

  3. ソースが開いたら、ブレークポイントを設定します。
    f:id:tkdy0115:20160424200228p:plain

SIT-WTのテストを、failsafe pluginをデバッグモードにして実行する

  1. プロジェクト・エクスプローラー」ビュー、または「パッケージ・エクスプローラー」ビューでプロジェクトを選択し、 右クリック>「実行」>「実行の構成」をクリックします。
  2. 実行構成ダイアログにて下記を入力し、「実行」ボタンをクリックします。
    • ゴール: clean verify -Dmaven.failsafe.debug=true
      f:id:mrno27:20160805112629p:plain
  3. コンソールに以下のメッセージが表示された時点でテスト実行が停止します。
    f:id:mrno27:20160805202654p:plain

Eclipseのリモートデバッグ機能でMavenプロセスにアタッチする

  1. プロジェクト・エクスプローラー」ビュー、または「パッケージ・エクスプローラー」ビューでプロジェクトを選択し、 右クリック>「デバッグ」>「実行の構成」をクリックします。
  2. デバッグ構成ダイアログ「リモートJavaアプリケーション」を選択し、右クリック>「新規」を選択します。
  3. 下記を入力し、「デバッグ」ボタンをクリックします。
    • プロジェクト: SIT-WTのMavenプロジェクト名
    • ポート:5005
      f:id:mrno27:20160805203923p:plain
  4. 設定したブレークポイントでテスト実行が停止し、デバッグが可能になります。
    f:id:tkdy0115:20160424211340p:plain

【補足】デバッグ実行ができる仕組み

SIT-WTのテストは、SIT−WTが内部的に生成したJUnitテストクラスを「maven-failsafe-plugin」に実行させることで動作します。 このときテストはMavenが動作しているJavaプロセスとは別のJavaプロセスで実行されます。 「maven.failsafe.debug」プロパティを有効にすると、テストを実行しているJavaプロセスは開始時点で自動的に停止しデバッグポート(デフォルトでは5005番)でデバッガのアタッチを待機します。よって、Eclipseのリモートデバッグ機能でデバッグ実行できるようになります。

maven.failsafe.debug」プロパティの詳細については、以下のリンク先を参照してください。

Maven Failsafe Plugin – Debugging Tests

参考

デバッグの実行開始後、Firefoxが起動したままテストが開始されない場合の対応方法

Seleniumのバージョンを、使用するブラウザとそのバージョンに合わせる必要があります。 対応については以下のリンク先を参照してください。

SIT WTが使うSeleniumのバージョンを変更する方法 · sitoolkit/sit-wt-all Wiki · GitHub

テスト実行の一時停止について

本記事の手順に沿ってデバッグを実行すると、各テストケース終了後にコンソール上で「テストスクリプトの実行を一時停止します。」と表示され、テストの実行が一時停止されます。

   :
スクリーンショットを取得しました C:\Users\Yu\git\quick01\target\evidence_20160501163739\img\ExcelTestScript.xlsx_001_18_名前_BEFORE_OPERATION.png
名前(xpath=//*[@id="confirm"]/tbody/tr[1]/td)の値が期待値[試験太郎]に一致することを確認します。
ブレークポイントが設定されています。
テストスクリプトの実行を一時停止します。ブラウザの操作は可能です。操作方法を表示するにはEnterキーをタイプしてください。

これはSIT-WTが提供しているデバッグ機能によるものです。 SIT-WTのデバッグ機能については以下の記事を参照ください。

SIToolkit デバッグしながらテストスクリプトを編集する - システム開発現場の道具箱