Click English for English page if you need.
このリポジトリは、同人誌『Unity Test Framework完全攻略ガイド』および同『統合テスト編』のサンプルコードです。
電子版 (PDF) は次のWebサイトから購入できます。
統合テスト編のサンプルには Integration
カテゴリーを設定しています。
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> を参照してください。
第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 状態遷移テスト」のテストコード
第7章 テストダブル
Assets
└── TestDoubleExample
第9章 Unity Test Framework Tips
Assets
└── InternalsVisibleToExample // 「9.10 internalメソッドのテストを書きたい」
第10章 Sceneを使用するテスト
Assets
└── SceneExample
Note
『Unity Test Framework完全攻略ガイド 第3版』より、10.2.2 および 10.3 で紹介している Scene のロード処理を、Test Helper パッケージ(com.nowsprinting.test-helper)に含まれる LoadScene 属性を使用する形に置き換えました。
変更差分はコミット <86f8ab9> を参照してください。
第11章 UPM パッケージのテスト
Packages
└── com.nowsprinting.embedded-package-sample
LocalPackages
└── com.nowsprinting.local-package-sample
統合テスト編 第2章 uGUI操作の自動化
Assets
└── UGUIExample
統合テスト編 第3章 Input Systemによる操作の自動化
Assets
└── InputSystemExample
統合テスト編 第4章 Input Managerによる操作の自動化
Assets
└── InputExample
統合テスト編 第5章 ビジュアルリグレッションテスト
Assets
└── VisualRegressionExample
Unity 2019 LTSプロジェクトです。 Unity Test Frameworkのバージョンは最新に追随し、APIの使用サンプルも追加しています。
Unity 2021 LTSプロジェクトです。master
ブランチとの差分は次のとおりです。
- NSubstituteパッケージの取得元を、net.tnrd.nsubstituteからUnityNuGetに変更
- Roslynアナライザの導入
- NSubstitute.Analyzers.CSharp
- NUnit.Analyzers
- IDisposableAnalyzers
Note
実験的バージョンであったUnity Test Framework v2.0の開発は中断されました1。
それに伴ない、ブランチutf2
は削除しました。
以下の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テストを実行しようとするとコンパイルエラーとなります。
MIT License