Skip to content

『Unity Test Framework完全攻略ガイド』および同『統合テスト編』サンプルコード

License

Notifications You must be signed in to change notification settings

nowsprinting/UnityTestExamples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

af42913 · Apr 20, 2025
Mar 31, 2025
Apr 13, 2024
Mar 1, 2025
Feb 15, 2023
Feb 8, 2025
Nov 15, 2023
Jul 23, 2021
Apr 20, 2025
Jul 23, 2021
Mar 1, 2025
May 7, 2024
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Oct 28, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Jun 11, 2023
Jun 11, 2023
Jun 11, 2023
Jun 11, 2023
Feb 15, 2023
Feb 15, 2023
Feb 8, 2025
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Oct 12, 2024
Feb 11, 2025
Feb 11, 2025
Oct 28, 2023
Oct 28, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Feb 15, 2023
Jun 11, 2023
Jun 11, 2023
Jan 31, 2023
Jun 11, 2023

Repository files navigation

Unity Test Examples

meta-check test Integration Test

Click English for English page if you need.

このリポジトリについて

このリポジトリは、同人誌『Unity Test Framework完全攻略ガイド』および同『統合テスト編』のサンプルコードです。

電子版 (PDF) は次のWebサイトから購入できます。

BOOTH

技術書典マーケット

サンプルプロジェクトの構造

統合テスト編のサンプルには Integration カテゴリーを設定しています。

APIExamples

Unity Test FrameworkおよびNUnit3のAPIカタログ

Assets
└── APIExamples
    ├── Scripts
    │   └── (snip)
    └── Tests
        ├── Editor
        │   └── UnityTestFramework
        │       └── 第3章 Edit Modeテスト, 第5章 非同期処理のテスト
        └── Runtime
            ├── NUnit
            │   └── 第6章 アサーション, 第8章 パラメタライズドテスト, 第9章 Unity Test Framework Tips
            └── UnityTestFramework
                └── 第5章 非同期処理のテスト, 第9章 Unity Test Framework Tips

Note

『Unity Test Framework完全攻略ガイド 第3版』より、「6.4 カスタムアサーション」の例を Test Helper パッケージ(com.nowsprinting.test-helper)に含まれる GameObjectNameComparer および DestroyedConstraint を日本語訳したものに置き換えました。
変更差分はコミット <dc1b643> を参照してください。

BasicExample

第2章 Unity Test Frameworkの基本

Assets
└── BasicExample
    ├── Scenes
    │   └── (snip)
    ├── ScriptableObjects
    │   └── (snip)
    ├── Scripts
    │   ├── Editor
    │   │   └── (snip)
    │   └── Runtime
    │       ├── Entities
    │       │   ├── CharacterStatus.cs          // 「2.4 テストコードの書きかた」のSUT
    │       │   └── (snip)
    │       └── Level
    │           └── (snip)
    └── Tests
        ├── Editor
        │   └── AssetValidators
        │       ├── LevelValidator.cs
        │       └── RaceValidator.cs
        └── Runtime
            └── Entities
                ├── Enums
                │   └── ElementTest.cs
                ├── Settings
                │   └── HitPointGaugeSettingTest.cs // 「14.2 仕様テストにおけるテストケースの考えかた」のテストコード
                ├── CharacterStatueTest.cs      // 「2.4 テストコードの書きかた」のテストコード
                └── PassiveEffectTest.cs        // 「14.2.5 状態遷移テスト」のテストコード

TestDoubleExample

第7章 テストダブル

Assets
└── TestDoubleExample

InternalsVisibleToExample

第9章 Unity Test Framework Tips

Assets
└── InternalsVisibleToExample   // 「9.10 internalメソッドのテストを書きたい」

SceneExample

第10章 Sceneを使用するテスト

Assets
└── SceneExample

Note

『Unity Test Framework完全攻略ガイド 第3版』より、10.2.2 および 10.3 で紹介している Scene のロード処理を、Test Helper パッケージ(com.nowsprinting.test-helper)に含まれる LoadScene 属性を使用する形に置き換えました。
変更差分はコミット <86f8ab9> を参照してください。

Packages

第11章 UPM パッケージのテスト

埋め込みパッケージ

Packages
└── com.nowsprinting.embedded-package-sample

ローカルパッケージ

LocalPackages
└── com.nowsprinting.local-package-sample

UGUIExample

統合テスト編 第2章 uGUI操作の自動化

Assets
└── UGUIExample

InputSystemExample

統合テスト編 第3章 Input Systemによる操作の自動化

Assets
└── InputSystemExample

InputExample

統合テスト編 第4章 Input Managerによる操作の自動化

Assets
└── InputExample

VisualRegressionExample

統合テスト編 第5章 ビジュアルリグレッションテスト

Assets
└── VisualRegressionExample

備考

utf2 ブランチ

実験的バージョンであったUnity Test Framework v2.0の開発は中断されました1。 それに伴ない utf2 ブランチは削除しました。

WebGL Player

以下のUnityバージョンで問題が取り除かれたため2、WebGLプレイヤーでもUnityTest属性のテストを実行するようにしてあります。

Fixed in 2020.3.42f1, 2021.3.8f1, 2022.1.12f1, 2022.2.0b3, 2023.1.0a4

これらのUnityバージョン未満では、WebGLプレイヤーでPlay Modeテストを実行しようとするとコンパイルエラーとなります。

License

MIT License

Footnotes

  1. https://forum.unity.com/threads/unity-test-framework-2-0-ready-for-feedback.1230126/page-3#post-9531214

  2. https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-1170