TeamCity でエンドツーエンドテストを実行する: どの CI/CD ツールでも動く、ビルドステップ 1 個の設定
gtr-cli を使い、ビルドステップを 1 個追加するだけで TeamCity からエンドツーエンドテストを実行: すべてのテスト、失敗、動画、画像を TeamCity で確認でき、どの CI/CD ツールでも同じコマンドが使えます。
読了 7 分更新日: 2026年11月6日執筆: Ait Nohaila (事業開発担当)
TeamCity でエンドツーエンドテストを実行するには、--format teamcity を付けて gtr-cli を呼び出すビルドステップを 1 個追加します: GUI Test Studio のテストをビルドエージェントで再生し、すべてのテスト、不合格、動画、画像を TeamCity 自身の形式で報告します。
エンドツーエンドテストをすべてのビルドで実行する理由
Definition
エンドツーエンドテストは、ユーザーがするようにアプリを動かします: アプリを開き、ワークフロー全体をクリックと入力で進め、最後に画面が示すものを検証します。ユニットテストには捉えられないものを捉えるテストです: 壊れたボタン、送信できなくなったフォーム、内容を失ったページです。
開発者がプッシュする
どのブランチでも
TeamCity がビルドを始める
ビルドステップ 1 個
gtr-cli がテストを実行する
ビルドマシンの画面で、またはヘッドレスで
結果を読む
テスト、ログ、動画、画像
GUI Test Studio には、まさにそのためのコマンドラインランナー gtr-cli が付属しています。アプリと一緒にインストールされます。記録して編集したエンドツーエンドの GUI テストを、ウィンドウを開かずに実行し、パイプラインが期待する形で答えます: 終了コード、JUnit ファイル、CI ツールが理解するログです。
gtr-cli run tests --format teamcity --junit ci-out\junit.xml
終了コード
0 · 1
すべてのテストが合格なら 0、テストが不合格なら 1
junit.xml
<testcase>
各テストをテストとして、どの CI ツールでも読める形で
ビルドログ
##teamcity[...]
各テストと各不合格を、TeamCity 自身のログ言語で
必要なもの
| もの | 理由 | 入手先 |
|---|---|---|
| GUI Test Studio で作ったテスト | パイプラインが実行するエンドツーエンドテストで、ほかのファイルと同じようにリポジトリに置きます | 最初のテストを順を追って |
| GUI Test Studio をインストールした Windows のビルドマシン | gtr-cli はインストーラーに付属し、そのマシンでテストを再生します | インストールと設定 |
| TeamCity (またはほかの CI ツール) | すべての変更でビルドを始め、その結果を表示します | JetBrains の TeamCity |
ステップ 1: ビルドマシンを準備する
エンドツーエンドテストは本物の画面でクリックと入力を再生するので、ビルドエージェントには作業するデスクトップが必要です。
Windows サービスとして
テストを再生する画面がありません。
サインイン済みの Windows セッションで
記録時の画面サイズと拡大縮小の、本物のデスクトップ。
Web テストならヘッドレスで
画面は不要で、複数のブラウザーとデバイスが同時に実行されます。
- 1
GUI Test Studio をインストールし、一度サインインする
インストーラーが gtr-cli を PATH に追加します。そのマシンで、エージェントを実行するアカウントで、アプリに一度サインインしてください。
- 2
サインイン済みの Windows セッションでエージェントを実行する
TeamCity エージェントは、Windows サービスとしてではなく、サインイン済みのユーザーセッションから起動してください: サービスにはテストを再生する画面がありません。記録時の画面サイズと拡大縮小を保ってください。ビルドマシンを準備するをご覧ください。
- 3
または Web テストをヘッドレスで実行する
Web アプリのテストは、
--headless onを付ければブラウザーウィンドウをまったく使わずに実行できます。空いた画面は不要になり、複数のブラウザーとデバイスが同時に実行されます。
ステップ 2: コマンドを組み立てる
オプションを覚える必要はありません。どちらのアプリでも、「コマンドラインと CI/CD」ウィンドウを開き、使いたいものにチェックを入れて、コマンド、または実際のパスを含む CI ツール向けのできあいのスニペットをコピーしてください。
これが、例のパイプラインが実行するコマンドです:
gtr-cli run tests\Checkout\Checkout.GTS --branch all --countdown 0 --format teamcity ^
--junit ci-out\junit.xml --json ci-out\result.json ^
--artifacts ci-out\artifacts --bug-report pdf| オプション | 動作 | 例 |
|---|---|---|
| --branch | テストを、それが作られたすべてのブラウザーとデバイスで実行します | --branch all |
| --countdown | すぐに始めます: ビルドマシンにはマウスから手を離す人がいません | --countdown 0 |
| --format | 各テストと各不合格を TeamCity 自身のログ言語で書き出します | --format teamcity |
| --junit / --json | 結果を、どのツールでも読めるファイルとして書き出します | --junit ci-out\junit.xml |
| --artifacts | 実行の動画、レポート、すべての不合格の画像を保持します | --artifacts ci-out\artifacts |
| --bug-report | 不合格になった各テストについて、記入済みのバグレポートを書き出します | --bug-report pdf |
| --headless | ブラウザーウィンドウなしで Web テストを実行するので、画面は不要です | --headless on |
すべてのオプションはパイプラインでテストを実行すると、GUI Test Studio をインストールしたどのコンピューターでも使える gtr-cli help で説明しています。
ステップ 3: TeamCity にビルドステップを追加する
リポジトリ用のビルド構成を作り、ビルドステップを 1 個追加して、コマンドを渡します。PowerShell ステップでもコマンドラインステップでもかまいません。例では、ステップはリポジトリにある小さなスクリプトを実行し、それがショップを起動してから gtr-cli を呼び出します。
VCS トリガーを追加して、すべてのブランチのすべてのプッシュでビルドが始まるようにします。セットアップはこれで全部です: gtr-cli が TeamCity のログ言語を話すので、TeamCity にプラグインは要りません。
ステップ 4: TeamCity で結果を読む
変更をプッシュして見守ってください。ブラウザーとデバイスごとに独立したテストなので、どこで不合格になったかが一目で分かります。
ビルドログ
gtr-cli はステップごとに 1 行書き出し、何が不合格だったかを率直に伝えます: どのアサーションが、どのブラウザーとデバイスで、なぜかです。
不合格のビルド
ビルドの概要には、ログを開かなくても、不合格のテストとその理由が並びます。
テスト
「Tests」タブには、ビルドのすべてのテストが並びます。各結果がテストとして報告されるので、TeamCity はその履歴、所要時間、不合格の頻度も保持します。
エビデンス
アーティファクトには、実行が見たものがすべて入っています: ブラウザーとデバイスごとのフォルダーに、実行の動画、レポート、バグレポート、そしてすべての不合格について、変化を赤で囲んだ期待画像と実際の画像です。同じ実行を GUI Test Runner-Recorder で開けば、信頼度レポートの全体を読めます。
1 回のビルドですべてのブラウザーとデバイスを
Web テストは一度作れば、複数のブラウザーとデバイスで実行できます: Chrome、Edge、Firefox、デスクトップ、スマートフォン、タブレットです。パイプラインでは、--branch all が 1 回のビルドでそれらすべてを実行し、ウィンドウの要らないものは同時に実行されます。1 回の記録からすべてのブラウザーとデバイスへをご覧ください。
TeamCity を使っていませんか? 同じコマンドがどこでも
- gtr-cli はどのツールにも縛られません。テストを実行して終了コードを返すプログラムなので、コマンドを実行できるものなら何でもエンドツーエンドテストを実行できます: CI サーバー、スケジュールされたタスク、リリーススクリプトです。機能テスト、リグレッションテスト、スモークテスト、受け入れテスト: アプリをインターフェイスを通じて動かすテストを何と呼ぶにせよ、同じように実行されます。
| 使うツール | コマンドに追加するもの |
|---|---|
| TeamCity | --format teamcity |
| Azure DevOps | --format azure |
| GitHub Actions | --format github |
| Jenkins、GitLab、Bamboo など | --junit results\junit.xml、ツールのテストレポートが読みます |
| 自作のスクリプト | なし: 終了コードか --json ファイルを読みます |
- name: End-to-end tests
run: gtr-cli run tests --countdown 0 --format github --junit results\junit.xml --artifacts results\artifacts| 終了コード | 意味 |
|---|---|
| 0 | すべてのテストが合格 |
| 1 | テストが不合格 |
| 2 | コマンド自体が誤っていた |
| 3 | ファイルの欠落などで、テストを実行できなかった |
| 4 | 実行が中止された |
要点
- 1gtr-cli はエンドツーエンドテストをウィンドウなしで実行し、終了コード、JUnit ファイル、TeamCity 自身のログ行で答えます。
- 2TeamCity に必要なのはビルドステップ 1 個だけで、プラグインは不要です: アプリの「コマンドラインと CI/CD」ウィンドウがコマンドを組み立てます。
- 3エージェントには画面が必要です: サインイン済みの Windows セッションで実行するか、Web テストをヘッドレスで実行してください。
- 4すべての不合格にエビデンスが付きます: アーティファクトフォルダーを公開すれば、動画と画像はビルドからワンクリックです。
- 5同じコマンドがどこでも動きます: Jenkins、GitHub Actions、GitLab、Azure DevOps で変わるのはログの形式だけです。
よくある質問
TeamCity でエンドツーエンドテストを実行するにはどうすればよいですか?
--format teamcity を付けて gtr-cli を実行するビルドステップを 1 個と、すべてのプッシュでビルドが始まるように VCS トリガーを追加します。gtr-cli は GUI Test Studio のテストをビルドエージェントで再生し、各テストと各不合格を TeamCity 自身のログ言語で書き出すので、TeamCity はそれらをテストとして表示します。アプリの「コマンドラインと CI/CD」ウィンドウがコマンドを組み立てます。
TeamCity で GUI テストを実行するにはプラグインが必要ですか?
いいえ。gtr-cli は結果を、TeamCity が自分で読むログ言語である TeamCity サービスメッセージとして、またどの CI ツールでも読める JUnit ファイルとして書き出します。TeamCity サーバーにインストールするものは何もありません。
TeamCity のビルドエージェントで、画面が必要なテストを実行できますか?
はい、エージェントが Windows サービスとしてではなく、サインイン済みの Windows セッションで動いていれば実行できます。サービスには、クリックや入力を再生するデスクトップがありません。記録時の画面サイズと拡大縮小を保つか、画面をまったく必要としないヘッドレスで Web テストを実行してください。
TeamCity はテスト結果をどのように表示しますか?
各テストは所要時間と履歴とともにビルドの「Tests」タブに表示され、不合格のテストはビルドの概要に理由とともに名前が並び、ビルドログにはステップごとに 1 行が記録されます。アーティファクトフォルダーを公開すれば、実行の動画、レポート、画像はビルドからワンクリックです。
gtr-cli はどの終了コードを返しますか?
すべてのテストが合格なら 0、テストが不合格なら 1、コマンド自体が誤っていたら 2、テストを実行できなかったら 3、実行が中止されたら 4 です。パイプラインは 0 以外ならビルドを不合格にします。
同じコマンドは Jenkins、GitHub Actions、GitLab でも動きますか?
はい。gtr-cli はテストを実行して終了コードを返すプログラムなので、コマンドを実行できるものなら何でもテストを実行できます。変わるのはログの形式だけです: GitHub Actions には --format github、Azure DevOps には --format azure、Jenkins、GitLab、Bamboo などには JUnit ファイルを使います。
パイプラインで、Web テストをブラウザーウィンドウなしで実行できますか?
はい。--headless on を付けると、Web アプリのテストはブラウザーウィンドウなしで実行され、空いている画面を必要とせず、複数のブラウザーとデバイスが同時に実行されます。--branch all を付けると、テストはそれが作られたすべてのブラウザーとデバイスで 1 回のビルドの中で実行されます。
不合格になったテストのスクリーンショットと動画を残すにはどうすればよいですか?
--artifacts にフォルダーを付けて追加します: gtr-cli は実行の動画、レポート、そしてすべての不合格について変化を囲んだ期待画像と実際の画像を保持します。そのフォルダーを TeamCity でビルドのアーティファクトとして公開し、不合格のテストごとに記入済みのバグレポートが欲しければ --bug-report pdf を追加してください。
次に進む先
テスト対象のアプリでご覧になりますか? チームとの 30 分の無料相談を予約してください。