163 Views
February 16, 26
スライド概要
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
UI テストを簡単にする UI Toolkit Test Framework
発表タイトル Mathieu Miller スタッフソフトウェア開発者
発表タイトル Esther Ugolini シニアソフトウェア開発者、品質担当
UI Test Framework が UI Toolkit チームの CI に与える影響 実行時間が高速になる テストが安定する テストを作成が容易になる GPT Image 1 を使用して U-AI で生成されたアイコン、2025 年 10 月 3 日
UI 自動テストの苦労 アジェンダ NUnit と Unity Test Framework の復習 UI Test Framework の紹介 Bagels テストの紹介
UI 自動テストの 苦労 非同期操作 タイミングの問題 CI/ローカル実行時間 変動性が大きい 学習曲線が急
NUnit と Unity Test Framework の復習
NUnit の基本 .NET 言語用のオープンソース単体テストライブラリ テスト属性をコードに加えて、メソッドに特定の 機能を割り当てることができる Test Fixture は、実行されるテストコードを含むユ ーザー定義のクラス NUnit 属性の簡単な使用例のスクリーンショット、Esther Ugolini 提供、2025 年 11 月 3 日
Unity Test Framework の基本 Unity 特有の機能を拡張したカスタム バージョンの NUnit を統合する [UnityTest] は、テストがフレーム、アプリ ケーションループ、ドメインリロードと 相互作用できるようにする テストは TestRunner ウィンドウで実行する テストは、エディターとランタイムの 2 つのアセン ブリにグループ化される Unity Test Framework の例のスクリーンショット、Esther Ugolini 提供、2025 年 11 月 3 日
UI Toolkit Test Framework com.unity.ui.test-framework パッケージは Unity 6.3 以上 で利用可能! NUnit および Unity Test Framework (UTF) と併用できる UI Test Framework には UI Test Fixture と呼ばれる API のコレクションが含まれる
アクション中の UI Test Framework
Bagel Game ワールド空間 UI USS フィルター カスタム UI シェーダー ベクターグラフィックス Bagel Game のすべての GIF、Damian Campeanu が記録、2025 年 9 月
Bagel Game UI Test Fixture を使った、各種メニューや インターフェースの自動テスト ⎯ エディターテスト ⎯ 再生モードテスト Unity エディターで実行されている Bagel Game テストのGIF、Damian Campeanu 提供、 2025 年 9 月
UI Test Fixture UI Toolkit UI を クリックする UI インタラクションのシミュレーションを行う 機能を解除する UI Toolkit 更新ループを制御する ことで、 OS が Pointer Down イベントを送信 フレームを待機する不確実性をスキップする Unity がイベントを 受信して UI Toolkitに送信 UI Toolkit がイベントを 受信して処理、または ユーザーコードが処理
一時停止メニュー: ボタンのテスト Bagel Game UI のスクリーンショット、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
ゲームオーバー: テキスト入力のテスト Bagel Game UI のスクリーンショット、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
UITestFixture は、rootVisualElement プロパティを使って UI を加えることが できる空のパネルをテストに提供する 要約 simulate プロパティ経由で UI インタラ クションのシミュレーションを行う simulate.FrameUpdate() を呼び出して、 UI が操作や検証を行う準備ができて いるか確認する!
UI Toolkit 更新ループ 非同期 イベント処理 UITK イベント処理 スケジューラー スケジュールされたコールバック バインディング カスタムバインディング/コンバーター アニメーション 遷移イベント スタイル 遷移イベント/カスタムスタイル レイアウト ジオメトリ変更イベント レイアウトが無効になる可能性があります * Transform と境界 描画 再描画 カスタムビジュアルコンテンツ ユーザーコード
ボタンの長押し: 時間を指定したテスト Bagel Game UI の GIF、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Esther Ugolini 提供、2025 年 11 月
ボタンの長押し:時間を指定したテスト Bagel Game UI の GIF、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
Click() 関数が、PointerDown イベント、 続いて PointerUp イベントを送信する PointerDown イベントのみを送信する ことで、細かい制御ができる 要約 FrameUpdate() により UI Toolkit 更新 ループに対する制御 が可能になる。 つまり UI のスケジューラー、レイアウ ト、スタイル、データバインディング、 アニメーションを即座に更新できる FrameUpdate() 関数がデフォルトで パネルの時間を進めるが、特定の値を指 定することもできる
UI テスト コンポーネント UITest Component メソッドのシグネチャのスクリーンショット、Mathieu Miller 提供、2025 年 11 月
ボタンの長押し: カスタムスタイル Bagel Game UI の GIF、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
Bagel Tracker: UI バインディングの テスト Bagel Game UI の GIF、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
設定: ポップアップメニューのテスト Bagel Game UI の GIF、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
AddTestComponent() 関数を使って、 テストにテストコンポーネントを加える StylesApplicator コンポーネントを 使うと、要素にスタイルを加えること ができる 要約 CleanupUtil テストコンポーネントを 使うと、破棄または解放のためにオブ ジェクトを追跡できる PopupMenuSimulator を使うと、ポップ アップメニューをテストできる。使わ ないとテストできない
一時停止メニュー: エディター vs. ランタイムフィクスチャ Unity Test Framework の Test Runner ウィンドウに表示された Bagel Game テストアセンブ リのスクリーンショット、Damian Campeanu 提供、2025 年 11 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
Bagel Tools: エディターウィンドウの テスト Bagel Game UI のスクリーンショット、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
ランタイム: ゲーム内一時停止メニューの テスト Bagel Game UI のスクリーンショット、Damian Campeanu 提供、2025 年 9 月 Bagel Game UI テストのスクリーンショット、Damian Campeanu 提供、2025 年 9 月
UITestFixture はエディターテストとランタイム テストの両方に (再) 使用できる 要約 EditorWindowUITextFixture<> を使って、 EditorWindow に関連付けられた UI のテストを作成する RuntimeUITestFixture を使って、シーンコンポー ネントと一緒に UI をテストする debugMode を有効にして、UI を画面に描画し、 テストが失敗したときに実行を一時停止する
UI Test Framework パッケージは Unity 6.3 以上 で利用可能! まとめ UI Test Fixture 機能を使って、 UI を確実かつ効率的にテストする クリックや入力などの UI インタラクション のシミュレーションを行う UI テストコンポーネント を使って、 Test Fixture の追加機能を有効にする
Thank you UI Test Framework の ドキュメントと スクリプティング API Bagel Game の GitHub リポジトリ