付録C. リポジトリの設定例
examplesリポジトリは、本書で取り上げたすべての例と、MavenとGradleの完全なコンフィギュレーションを含んでいるため、の重要な要素である。さらに、このリポジトリはGitHubが提供する以下のようなサービスを利用している:
- GitHubページ
-
サービス GitHubリポジトリから直接設定した公開Webサイトをホスティングできる。私は、Selenium WebDriverのテスト例でSUTとして使われるWebページを紹介するために、examplesリポジトリにリンクされたシンプルなWebサイトを使っているhttps://bonigarcia.dev/selenium-webdriver-java。見ての通り、CSSフレームワークとしてBootstrapを使ったさまざまなHTMLページが含まれている。
- GitHubアクション
-
GitHubリポジトリ用のCI/CDビルドサーバ。私はこのサービスを使って、新しいコミットごとにリポジトリ全体をビルドしてテストしている。ワークフローの設定についての詳細は、このセクションの最後で説明する。
- ディペンダボット
-
というボットが、プロジェクトの依存関係を自動的に更新する。このボットは、MavenとGradleの依存関係(詳細は次のサブセクションを参照)の新しいバージョンを検出すると、対応する更新でプルリクエストを作成する。
この付録の残りの部分では、サンプルリポジトリの設定の詳細を発見する。この設定には、Maven と Gradle の依存関係の宣言などが含まれ、Selenium WebDriver を使う標準的なプロジェクトには十分である。さらに、この付録の最後の部分では、ロギングライブラリ、Dependabot、GitHub Actions(CIアプローチに従ってプロジェクトをビルドしてテストする)の設定方法を説明する。
プロジェクトのレイアウト
図C-1は、リポジトリのレイアウト例の概略図( )である。
図C-1. サンプルのリポジトリ(GitHubにホストされている)のレイアウト。
それぞれのサンプルを4つのフレーバー(JUnit 4、JUnit 5、JUnit 5plus Selenium-Jupiter、TestNG)で提供しているので、MavenとGradleの両方のコンフィギュレーションはマルチプロジェクトに基づいている。このようにして、examplesリポジトリには4つのモジュールがあり、テストフレームワークごとに1つずつある:selenium-webdriver-junit4 selenium-webdriver-junit5 selenium-webdriver-junit5-seljup selenium-webdriver-testngMavenでは、マルチプロジェクトのセットアップは、ルートフォルダにあるpom.xml にあり、Gradleでは、ファイル settings.gradleファイル内にある。
図 C-1 を見ればわかるように、各モジュールは同じ構造になっている。 テスト・ソース・コードはsrc/test/java フォルダーで発見できる。Java パッケージを使って、章ごとにサンプルを分けている(例:io.github.bonigarcia.webdriver.jupiter.ch02.helloworld ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access