2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unity の Automated QA を使ってローカルの実機でスモークテストを実行してみた

Last updated at Posted at 2021-12-04

この記事は Akatsuki Advent Calendar 2021 4日目の記事になります
前日の記事は C言語で自作shell作ってみた(コマンド実行とリダイレクト)です

はじめに

ゲーム業界でもテストについての話題が多くなっていますね
そんな中、今年の4月ごろに Unity が Automated QA という機能をリリースしました(まだ Preview です)
今回はその Automated QA を使ってスモークテストをローカルの実機で確認するまでを試してみました

Automated QA とは

Automated QA は Unity エディタで UI へのタップやスワイプ、ドラッグなどを記録し、エディタや iOS、 Android で再生を行うことでテストができる機能です
毎回検証が必要な箇所を記録することで以降は自動で検証ができるようになったりします
また、複数の記録を組み合わせてテストを作成するコンポジット機能などがあり、テストを柔軟に作り上げることも可能です
より具体的な機能は公式のブログ公式のドキュメントをご覧ください

環境

今回の環境は以下になります
MacOS BigSur
Unity 2020.3.1f1
Automated QA 0.8.0-preview.1
iPhone Xs Max

Automated QA の導入

Automated QA の導入は簡単です
Unity の PackageManager を起動して「+」を押下し「Add package from git URL...」を選択
スクリーンショット 2021-12-04 11.50.17.png

入力欄が表示されるので、そこに「com.unity.automated-testing」と入力し「Add」を押下
スクリーンショット 2021-12-04 11.50.29.png

これで導入は完了です

Automated QA で記録を行う

Automated QA の Window はメニューの「Automated QA」から表示できます
スクリーンショット 2021-12-04 15.38.25.png

「Recorded Playback」から「Record」を選択するとゲームが再生されます
記録したい操作を行い、完了したら「Stop」を押下すると Json ファイルが作成され Recordings フォルダに保存されます
この Json ファイルは以下のような内容になります
スクリーンショット 2021-12-04 20.30.35.png
GameObject の名前や付けられているタグの名前、ヒエラルキーなど様々な情報が書かれていますね

Automated QA を使ってテストを行う

作成した Json を使って C# のテストコードを作成することができます
「Automated QA Hub」Window から「Test Generation」を押下し Recordings から C# コード化したい記録を選択し 「Full Tests」を実行します
スクリーンショット 2021-12-04 16.36.23.png

生成された C# コードは「GeneratedTests」フォルダの中に保存されます
これは「Test Runner」から実行できる C# コードです

スクリーンショット 2021-12-04 16.38.58.png
C# コードを生成した後は「Test Runner」の「PlayMode」をエディタで実行して、実行できるか確認してください
次はプラットフォームへビルドしてテストを行うため、事前にビルドの設定をします
Unity のターゲットとなるプラットフォームの指定で iOS を設定した場合は、ビルド後に Xcode のビルドを行うため、事前に Xcode プロジェクトの設定を行う必要があります(PostProcessBuildからの設定でも問題ないと思います)
スクリーンショット 2021-12-04 17.50.40.png
この設定が終わったら iPhone を接続して「Test Runner」にある「Run All Tests」or「Run Selected Tests」を実行します
スクリーンショット 2021-12-04 18.18.09.png

ここまで実行ができれば前準備は完了です!!

Command Line から テストを実行する

ここからは Command Line でテストを実行していきます

# プロジェクトへのパスやオプションは適宜変更してください
/Applications/Unity/Hub/Editor/2020.3.1f1/Unity.app/Contents/MacOS/Unity -runTests -batchmode -projectPath TestAutomatedQA/ -testPlatform iOS -testResults ./result.xml -logFile

今までテストが問題なく動作していたらこれで Command Line から実行ができます
RPReplay_Final.gif

出力した result.xml は以下のような内容で出力されます
スクリーンショット 2021-12-04 19.14.35.png

まとめ

Command Line から Automated QA を利用した実機でのスモークテストを行ってみました
起動はできるのか・エラーが起きることなく全ての画面へ遷移が行えるのかなどの簡易なチェックを行いたい場合に Unity の機能で完結できるのは便利ですね

C# コード化することで Test Runner から実行できるようになり、UI の操作もスクリプトで操作できるようにもなりました
また、ElementQuery という機能を利用することでより柔軟な GameObject の検索ができるようになるので追って記事を書きたいと思っています

Automated QA の今後の展望として将来的には ML-Agents を用いて AI による自動操作も可能にする予定とのことなのでさらに便利になっていることを楽しみにしていましょう

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?