ローカルPC環境ではクラウド環境のようにMagicPod上でテストの定期実行を設定することができません。そのためローカルPC内のスケジュール実行ツールを用いる必要があります。ここではローカルPC環境での定期実行について、Mac環境でのlaunchdを用いた方法とWindows環境でのタスクスケジューラを用いた方法を説明します。
目次
1. launchdを用いたMacでの定期実行
launchdは、macOSのシステムプロセスやタスクを管理するサービス管理ツールです。ここではlaunchdを用いて毎日10:00にテストを一括実行する方法を説明します。
1-1 一括実行設定を作成する
まずは定期実行をしたい一括実行設定をMagicPod上で作成します。一括実行設定の方法についてはこちらをご確認ください。
作成完了後、設定名から一括実行設定の番号を確認してください。次のステップで使用します。
1-2 magic_pod_config.jsonを編集する
設定ファイルであるmagic_pod_config.jsonを開いてください。Macであればデフォルトでは以下のパスにファイルがあります。
/Users/<ユーザー名>/Library/Application Support/magic_pod_desktop/magic_pod_config.json
そしてmagic_pod_config.jsonを以下のように編集してください。
{
"owner": <組織名。表示名でなくURL中のアルファベット表記のもの>,
"project": <プロジェクト名。表示名でなくURL中のアルファベット表記のもの>,
"testSettingsNumber": <MagicPod一括実行設定の番号>
}
1-3 launchd用の.plistファイルを作成する
以下のコード例を参考に.plistファイルを作成し、~Library/LaunchAgents/ディレクトリに配置します。ここではファイル名を「com.example.magicpod.plist」とします。
- ProgramArgumentsではMagicPodDesktopファイルとmagic_pod_config.jsonファイルのフルパスを記載してください。
- ここでは毎日午前10:00にmagic_pod_config.jsonの設定に基づきテストの一括実行を行う設定としています。時間を変えたい場合はStartCalendarIntervalを変更してください。
- 初回.plistファイルロード時に一括実行を行いたくない場合はRunAtLoadをfalseにしてください。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.magicpod</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MagicPodDesktop.app/Contents/MacOS/MagicPodDesktop</string>
<string>run</string>
<string>--magic_pod_config=/Users/<ユーザー名>/Library/Application Support/magic_pod_desktop/magic_pod_config.json</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>10</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
1-4 .plistファイルをロードする
Terminalなどのコマンドラインツールにてこのコマンドを実行してください。.plistファイルのRunAtLoadをtrueとしている場合は指定した時間だけでなくロード時にもテストの一括実行が行われます。
launchctl load ~/Library/LaunchAgents/com.example.magicpod.plist
これで定期実行の設定が完了しました。定期実行を止めたい場合は以下のコマンドを実行しアンロードを行なってください。
launchctl unload ~/Library/LaunchAgents/com.example.magicpod.plist
2.タスクスケジューラを用いたWindowsでの定期実行
タスクスケジューラは、Windowsに搭載されているスケジュール管理ツールです。ここではタスクスケジューラを用いて毎日10:00にテストを一括実行する方法を説明します。
2-1 一括実行設定を作成する
まずは定期実行をしたい一括実行設定をMagicPod上で作成します。一括実行設定の方法についてはこちらをご確認ください。
作成完了後、設定名から一括実行設定の番号を確認してください。次のステップで使用します。
2-2 magic_pod_config.jsonを編集する
設定ファイルであるmagic_pod_config.jsonを開いてください。Windowsであればデフォルトでは以下のパスにファイルがあります。
C:\Users\<ユーザー名>\AppData\Roaming\magic_pod_desktop\magic_pod_config.json
そしてmagic_pod_config.jsonを以下のように編集してください。
{
"owner": <組織名。表示名でなくURL中のアルファベット表記のもの>,
"project": <プロジェクト名。表示名でなくURL中のアルファベット表記のもの>,
"testSettingsNumber": <MagicPod一括実行設定の番号>
}
2-3 PowerShellで実行するための.ps1ファイルを作成する
以下の例を参考に.ps1ファイルを作成してください。ここではファイル名を「RunMagicPod.ps1」とします。
& "C:\Users\<ユーザー名>\AppData\Local\magic_pod_desktop\app-1.20.0\MagicPodDesktop.exe" run --magic_pod_config="C:\Users\<ユーザー名>\AppData\Roaming\magic_pod_desktop\magic_pod_config.json"; Wait-Process -Name MagicPodDesktop -Timeout 3600
2-4 タスクスケジューラでタスクを作成する
タスクスケジューラを立ち上げ、「タスクの作成」をクリックしてください。
「全般」タブで任意のタスク名をつけてください。
「トリガー」タブで「新規」をクリックし、毎日10:00に実行するトリガーを設定してください。
「操作」タブで「新規」をクリックしてください。
「操作の編集」で下記設定を行い、「OK」を押してください。
操作:プログラムの開始
プログラム/スクリプト:powershell.exe
引数の追加:-ExecutionPolicy Bypass -File "C:\Users\<.ps1ファイルのpath>\RunMagicPod.ps1"
これで定期実行の設定が完了しました。
想定通りにテスト一括実行が行われない場合は、タスクスケジューラの「条件」タブおよび「設定」タブの設定内容、「全般」タブのセキュリティオプションの設定内容を確認してください。
定期実行を停止したい場合は「トリガー」タブにて対象のトリガーを削除してください。