UnityTestExamples
UnityTestExamples copied to clipboard
Sample project for "Unity Test Framework完全攻略ガイド" and "Unity Test Framework完全攻略ガイド 統合テスト編"
Unity Test Examples
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
Branches
master
Unity 2019 LTSプロジェクトです。 Unity Test Frameworkのバージョンは最新に追随し、APIの使用サンプルも追加しています。
unity2021
Unity 2021 LTSプロジェクトです。masterブランチとの差分は次のとおりです。
- NSubstituteパッケージの取得元を、net.tnrd.nsubstituteからUnityNuGetに変更
- Roslynアナライザの導入
- NSubstitute.Analyzers.CSharp
- NUnit.Analyzers
- IDisposableAnalyzers
utf2
[!NOTE]
実験的バージョンであったUnity Test Framework v2.0の開発は中断されました^utf2。 それに伴ない、ブランチutf2は削除しました。
WebGL Player
以下のUnityバージョンで問題が取り除かれたため^UUM-1170、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