https://github.com/baba-s/uni-common-test-runner
Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた Unity プロジェクト
https://github.com/baba-s/uni-common-test-runner
kogane-unity-lib unity unity-test-runner unity3d
Last synced: 7 months ago
JSON representation
Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた Unity プロジェクト
- Host: GitHub
- URL: https://github.com/baba-s/uni-common-test-runner
- Owner: baba-s
- License: mit
- Created: 2019-03-24T04:43:22.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-21T03:03:51.000Z (almost 6 years ago)
- Last Synced: 2025-03-25T22:36:26.540Z (8 months ago)
- Topics: kogane-unity-lib, unity, unity-test-runner, unity3d
- Language: C#
- Homepage: http://baba-s.hatenablog.com/entry/2019/03/25/090000
- Size: 38.1 KB
- Stars: 26
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-unity-open-source-on-github - uni-common-test-runner - commit/baba-s/uni-common-test-runner?logoSize=auto) - More than 20 generic tests (Static Code Analysis)
README
# UniCommonTestRunner
Unity Test Runner で実行できる汎用的なテストを 20 個以上まとめた Unity プロジェクト
[](https://github.com/baba-s/uni-common-test-runner/releases)
[](https://github.com/baba-s/uni-common-test-runner/releases)


[](https://github.com/baba-s/uni-common-test-runner/blob/master/LICENSE)
# バージョン
- Unity 2018.3.7f1
# 使い方

Unity メニューの「Window > General > Test Runner」を選択して表示される

「Test Runner」ウィンドウからテストを実行することができます

テストに失敗した場合は、該当するシーンやゲームオブジェクトの名前が出力されます

Unity メニューの「Tools > UniCommonTestRunner」から
現在のシーンを対象にテストを実行することもできます
# 実行できるテストの種類
## 加速度センサーが無効になっているか

加速度センサーを使用しないプロジェクトにおいて
加速度センサーが無効になっているかテストできます
- 関連記事
- http://baba-s.hatenablog.com/entry/2019/03/07/145949
## Android 用のプラグインのプラットフォームが適切か

「Plugins」フォルダ内の「Android」フォルダに含まれているプラグインの
対象プラットフォームに iOS が設定されていないかどうかテストできます
- 参考サイト様
- https://pimdewitte.me/2016/11/03/optimizing-ios-builds-in-unity-a-tutorial-for-getting-under-the-100mb-over-the-air-download-limit-on-the-app-store/
- https://answers.unity.com/questions/1187539/why-does-unity-54-include-the-contents-of-pluginsa.html
## Animator Controller の Motion が null になっていないか

Animator Controller の中のいずれかのステートの Motion が
null になっていないかどうかテストできます
## Audio Listener が存在しないか

CRI のようなサウンドミドルウェアを使用しているプロジェクトで
Audio Listener が使用されていないかどうかテストできます
## Audio Listener が複数存在しないか

Unity 標準のオーディオ機能を使用しているプロジェクトで
Audio Listener が1つのシーンに複数存在しないかどうかテストできます
## 2D のカメラのパラメータが統一されているか

2D のプロジェクトにおいてすべてのシーンの
カメラのパラメータが統一されているかどうかテストできます
## Canvas にカメラが設定されているか

Render Mode が「Screen Space - Camera」や「World Space」になっている Canvas に
カメラが設定されているかどうかテストできます
## 透明な UI オブジェクトの
Cull Transparent Mesh がオンになっているか

表示する必要のない透明な UI オブジェクトの Canvas Renderer の
Cull Transparent Mesh がオンになっているかどうかテストできます
- 関連記事
- http://baba-s.hatenablog.com/entry/2019/03/18/152500
## Canvas Scaler のパラメータが統一されているか

すべてのシーンの Canvas Scaler の解像度の設定が
統一されているかどうかテストできます
## DisallowMultipleComponent 属性が適用されている
コンポーネントが複数アタッチされていないか
```cs
using UnityEngine;
[DisallowMultipleComponent]
public class Example : MonoBehaviour
{
}
```
DisallowMultipleComponent 属性が適用されているコンポーネントが
1つのゲームオブジェクトに複数アタッチされていないかどうかテストできます
## EventSystem の Drag Threshold が統一されているか

すべてのシーンの EventSystem の Drag Threshold の値が
統一されているかどうかテストできます
(シーンによって ScrollRect の操作性が相違していないか確認できます)
## 2D のシーンで GI が無効になっているか

2D のシーンでグローバルイルミネーションの機能が
無効になっているかどうかテストできます
- 関連記事
- http://baba-s.hatenablog.com/entry/2019/03/06/141858
- http://baba-s.hatenablog.com/entry/2019/03/06/143028
- http://baba-s.hatenablog.com/entry/2019/03/06/143224
## iOS 用のプラグインのプラットフォームが適切か

「Plugins」フォルダ内の「iOS」フォルダに含まれているプラグインの
対象プラットフォームに Android が設定されていないかどうかテストできます
## モバイル用のシェーダがマテリアルに設定されているか

Unity 標準の軽量なモバイルシェーダに置き換えられるシェーダが
使用されているマテリアルが存在しないかどうかテストできます
- 参考サイト様
- https://docs.unity3d.com/jp/current/Manual/shader-Performance.html
## Missing Prefab になっているオブジェクトが存在しないか

生成元のプレハブが削除されたゲームオブジェクトが
存在しないかどうかテストできます
## Missing になっている参照が存在しないか

存在しないアセットやオブジェクトの参照が設定されている
パラメータが存在しないかどうかテストできます
## Missing Script が存在しないか

存在しないスクリプトや名前が正しくないスクリプトがアタッチされている
ゲームオブジェクトが存在しないかどうかテストできます
## Odin の Required 属性が適用されている変数に
参照が設定されているか
```cs
using Sirenix.OdinInspector;
using UnityEngine;
public class Example : MonoBehaviour
{
[Required] public GameObject go;
}
```
Odin の Required 属性が適用されている変数に
参照が設定されているかどうかテストできます
## OnlyOneInScene 属性が適用されている
コンポーネントがシーンに 1つだけかどうか
```cs
using UnityEngine;
[OnlyOneInScene]
public class Example : MonoBehaviour
{
}
```
OnlyOneInScene 属性が適用されているコンポーネントが
シーンに1つしか存在しないかどうかテストできます
## RectTransform の Position が整数になっているか

RectTransform の Position に浮動小数点以下が設定されており
画像がボヤケて表示されていないかどうかテストできます
## RectTransform の Scale が整数になっているか
RectTransform の Scale に浮動小数点以下が設定されており
画像がボヤケて表示されていないかどうかテストできます

## TextMeshProUGUI の Raycast Target がオフになっているか

クリックできる必要のない TextMeshProUGUI オブジェクトの
Raycast Target がオフになっているかどうかテストできます
- 関連記事
- http://baba-s.hatenablog.com/entry/2019/03/06/120002
## UI.Text の Raycast Target がオフになっているか

クリックできる必要のない UI.Text オブジェクトの
Raycast Target がオフになっているかどうかテストできます
- 関連記事
- http://baba-s.hatenablog.com/entry/2017/12/19/090000
- http://baba-s.hatenablog.com/entry/2017/12/26/130900
# 補足
「UniCommonTestRunner」は、あくまでも
汎用的に使えそうなテストをまとめただけのプロジェクトであり、
一部のテストはそのままだと使えない、意図した結果にならないことが想定されます
(例えば CRI を使用していることを前提としているテストが含まれています)
「UniCommonTestRunner」を使用する場合は
意図した結果にならないテストは修正や削除していただければと思います