T-DASHとGithubActionsを連携してみよう(CI連携)
はじめに
T-DASH とGithubActionsを連携してテスト自動化をしてみましょう。
ゴール
GithubActionsでT-DASHを使用したテストを実行できる
前提
- Githubアカウントを所持している
- T-DASHからエクスポートされた実行したいテストランを含んだsyncフォルダを所持している
※syncフォルダについて - テスト実行環境はWindowsで説明する
- GithubActionsのトリガーは手動実行で説明する
- T-DASHがインストール済みである
注意事項
- コマンドの生成に関してはこちら
手順
1. Githubのリポジトリを作成する
1. Repositoriesタブ内にあるNewボタンをクリックする
2. 任意のRepository情報を入力してCreate repositoryボタンをクリックする
3. 以下のページに沿ってブランチを作成する
2. syncフォルダを共有する
1. 作成したリポジトリのmainブランチのルートフォルダへsyncフォルダをpushする
3. T-DASHコマンドラインツールをGithub管理する
1. 「tdash.exe」ファイルを7zipを使用して、100MBに分割圧縮します。
※tdash.exeは、C:\Users\user.name\AppData\Local\Programs\T-DASHフォルダ
にあります。
2. 「tdashフォルダ」に分割圧縮されたファイルを格納します。
3. 「tdash」フォルダを作成したリポジトリのmainブランチのルートフォルダへpushする
4. GithubActionsのワークフローを作成する
1. Githubの「Actions」タブをクリックし、「Simple workflow」の「Configure」ボタンをクリックする
2. ワークフローのymlファイルの名称に任意の名前を設定する(ここではtdash-workflow-sample.ymlとしておきます)
3. ymlファイル内に以下をコピー&ペーストする
name: T-DASH CI Sample
# ワークフローのトリガーは以下を参照して変更してください
# このチュートリアルでは手動実行するトリガーとしています
# https://docs.github.com/ja/actions/using-workflows/events-that-trigger-workflows
on:
workflow_dispatch:
env:
TDASH_ROOT_PATH: "$HOME/AppData/Local/Programs/T-DASH"
TDASH_CMD_EXE_PATH: "$HOME/AppData/Local/Programs/T-DASH/tdash.exe"
TDASH_ZIP_PATH: "/tdash/tdash.zip.001"
TDASH_EXE_NAME: "tdash.exe"
ZIP_INSTALLER_URL: "https://www.7-zip.org/a/7z2300-x64.exe"
ZIP_INSTALL_EXE_PATH: "7zip/7z2300-x64.exe"
ZIP_EXE_PATH: "C:/Program Files/7-Zip/7z.exe"
REPORT_PATH: "C:/Users/runneradmin/AppData/Local/Programs/T-DASH/projects/commandlinetestrun/reports"
PYTHONUTF8: "1"
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3.5.2
- name: Setup Chrome (Test browser)
uses: browser-actions/setup-chrome@v1.2.0
with:
chrome-version: latest
- name: 7-zip install
run: |
New-Item -Path "7zip" -ItemType Directory
Invoke-WebRequest -Uri "${{ env.ZIP_INSTALLER_URL }}" -OutFile "${{ env.ZIP_INSTALL_EXE_PATH }}"
Start-Process -FilePath "${{ env.ZIP_INSTALL_EXE_PATH }}" -ArgumentList "/S" -NoNewWindow -Wait
- name: T-DASH cmd decompress
run: |
cmd /c "${{ env.ZIP_EXE_PATH }}" x -o${{ github.workspace }} "${{ github.workspace }}${{ env.TDASH_ZIP_PATH }}"
- name: make root dir
run: |
# T-DASHルートディレクトリがない場合は作成
if (-not (Test-Path -Path ${{ env.TDASH_ROOT_PATH }})) {
New-Item -Path ${{ env.TDASH_ROOT_PATH }} -ItemType Directory
}
- name: T-DASH cmd copy
run: |
$sourcePath = '${{ github.workspace }}/${{ env.TDASH_EXE_NAME }}'
# 実行ファイルが存在する場合は削除
if (Test-Path ${{ env.TDASH_CMD_EXE_PATH }}) {
Remove-Item ${{ env.TDASH_CMD_EXE_PATH }} -Force
}
Move-Item $sourcePath ${{ env.TDASH_CMD_EXE_PATH }}
- name: Run initial setup
run: |
# T-DASHの実行環境はexeを実行したフォルダに作成されるためカレントディレクトリを移動する
cd ${{ env.TDASH_ROOT_PATH }}
# T-DASHの実行環境構築
Start-Process -FilePath ${{ env.TDASH_CMD_EXE_PATH }} -ArgumentList "setup","--silent" -NoNewWindow -Wait
- name: Run the application
run: |
# リポジトリ管理しているテストを実行するsyncフォルダパス
$sourcePath = '${{ github.workspace }}\sync'
# コマンドライン実行するテスト実行環境のsyncフォルダパス
$destinationPath = '${{ env.TDASH_ROOT_PATH }}\projects\commandlinetestrun\sync'
# 共有フォルダが既に存在する場合は一度フォルダごと削除する
if (Test-Path $destinationPath) {
Remove-Item $destinationPath -Recurse -Force
}
# リポジトリのsyncをコマンドライン実行テスト環境のsyncへコピー
Copy-Item $sourcePath "${{ env.TDASH_ROOT_PATH }}\projects\commandlinetestrun\" -Recurse -Force
cd ${{ env.TDASH_ROOT_PATH }}
# テスト実行
Start-Process -FilePath ${{ env.TDASH_CMD_EXE_PATH }} -ArgumentList "testrun","ホテルテストラン", "--silent", "--background" -NoNewWindow -Wait
- name: Save results to artifacts
uses: actions/upload-artifact@v3.1.2
with:
name: results
path: ${{ env.REPORT_PATH }}
4. リポジトリの状態によってはPathが違うこともあるため「env」内の環境変数を修正する
※yml内の処理を以下に説明します
name | 説明 |
Checkout | Githubのリポジトリを取得しています。 |
Setup Chrome (Test browser) | MicrosoftEdgeはデフォルトでWindowsに入っていますが、Chrome,FireFoxはインストールされていないため、GithubActionsのMarketplaceから各種ブラウザのインストールをしています。 当チュートリアル内ではChromeのみインストールしています。 |
7-zip install | 7-zipをインストールしています。 T-DASHコマンドラインツールは300MBほどあり、Githubのファイルサイズ上限が100MBのため、「tdash」に7-zipで分割圧縮したファイルが入っています。 この分割圧縮されたファイルを結合解凍するために利用します。 |
T-DASH cmd decompress | 7-zipを使用して「tdash.exe」を解凍しています。 |
make root dir | T-DASHの実行フォルダを作成しています。 |
T-DASH cmd copy | T-DASHの実行フォルダへT-DASHコマンドラインツールをコピーしています。 |
Run initial setup | T-DASHコマンドラインツールのテスト実行環境を構築しています。 |
Run the application | T-DASHコマンドラインツールでテスト実行しています。 |
Save results to artifacts | T-DASHコマンドラインツールのテスト実行結果(reportフォルダ)をGithubActionsのartifactへ保存しています。 |
5. 変更を保存する
5. GithubActionsを実行する
1. 「Actions」タブの「T-DASH CI Sample」をクリックする
2. 「Run workflow」をクリックし、「Run workflow」ボタンからGithubActionsを実行する
3. 以下のようにGithubActionsが起動するため、赤枠部分をクリックする(起動しない場合はF5などでブラウザをリフレッシュしてください)
4. 「build」をクリックする
5. コンソール画面でGithubActionsの処理の進捗を確認する
6. T-DASHテスト実行結果を確認する
1. GithubActionsの処理が終了すると以下の様にSummaryが作成される
2. 「results」をクリックしてテスト実行結果をダウンロードする
3. results.zipを解凍する
4. 解凍したファイル内には以下の様にT-DASHのテスト実行を行ったと同様のレポートファイルが作成される
※Jenkinsなどでテスト結果を利用する場合は「xunit_output-*.xml」をご利用ください。