ドキュメント

Unity Engine

Unity Engine

パッケージにテストを追加する

Verify behavior with tests during development.
読み終わるまでの所要時間 6 分最終更新 1ヶ月前

どのような開発でもそうですが、パッケージにテストを追加するのは良いことです。パッケージにテストを設定するには、以下の 3 つを行う必要があります。
  1. C# テストファイルを作成し、Tests フォルダーに置きます。
  2. テスト用の asmdef ファイルを作成します。
  3. パッケージのテストを有効にします。

テストファイルの場所

Editor
と
Runtime
サブフォルダー内のパッケージの Tests フォルダーにテストファイルを加えます。例えば、テストを持つ単純なパッケージは以下のようになります。
<package-root> ├── package.json ├── Editor │ ├── <company-name>.<package-name>.Editor.asmdef │ └── EditorExample.cs ├── Runtime │ ├── <company-name>.<package-name>.asmdef │ └── RuntimeExample.cs └── Tests ├── Editor │ ├── <company-name>.<package-name>.Editor.Tests.asmdef │ └── EditorExampleTest.cs └── Runtime ├── <company-name>.<package-name>.Tests.asmdef └── RuntimeExampleTest.cs
これらの各サブフォルダには、エディターアセンブリとランタイムアセンブリへの参照を提供する
.asmdef
ファイルが含まれている必要があります。アセンブリ定義ファイルは、テストアセンブリファイルへの参照も提供します。詳細については、テスト用アセンブリ定義ファイル を参照してください。

テスト用アセンブリ定義ファイル

Test Framework パッケージを使用して、アセンブリ定義ファイルを作成または編集します。詳細については、テストアセンブリの作成 を参照してください。
アセンブリ定義ファイルを直接編集することを選択できますが、必ず以下の参照を加えてください。

属性

タイプ

説明

name文字列ファイル拡張子を除いたアセンブリの名前。
references文字列の配列エディターとランタイムのアセンブリへの参照。アセンブリ定義ファイルは、テストのタイプによって異なる参照が必要です。
- エディターテストの場合は、パッケージのエディターアセンブリとランタイムアセンブリへの参照を加えます。
- ランタイムテストの場合は、パッケージのランタイムアセンブリのみへの参照を追加します。
optionalUnityReferences文字列の配列アセンブリをテストアセンブリとするには、この Unity 参照のリストに
"TestAssemblies"
を加える必要があります。これにより、
nunit.framework.dll
ライブラリと
UnityEngine.TestRunner.dll
ライブラリへの参照がアセンブリ定義に追加されます。
includePlatforms文字列の配列エディターテストの場合は、このプラットフォームのリストに
"Editor"
プラットフォームを加える必要があります。
ヒント: インスペクターでアセンブリ定義ファイルを編集することもできます。詳細については、アセンブリの定義 を参照してください。

エディターファイルの例

エディタテスト
.asmdef
ファイルは以下のようになります。
{ "name": "MyCompany.MyPackage.Editor.Tests", "references": [ "MyPackage.Editor", "MyPackage" ], "optionalUnityReferences": [ "TestAssemblies" ], "includePlatforms": [ "Editor" ], "excludePlatforms": []}

ランタイムファイルの例

ランタイムテスト
.asmdef
ファイルは以下のようになります。
{ "name": "MyCompany.MyPackage.Tests", "references": [ "MyPackage" ], "optionalUnityReferences": [ "TestAssemblies" ], "includePlatforms": [], "excludePlatforms": []}

パッケージのテストを有効にする

埋め込みパッケージの場合は開発中のため、明示的にテストを有効にする必要はありません。
ただし、他の種類の依存関係に対しては、testables 属性をプロジェクトマニフェストに加え、実行するテストを含むパッケージの名前を追加する必要があります。これには、プロジェクトの直接的および間接的な依存関係が含まれます。 例:
{ "dependencies": { "com.unity.some-package": "1.0.0", "com.unity.other-package": "2.0.0", "com.unity.yet-another-package": "3.0.0", }, "testables": ["com.unity.some-package", "com.unity.other-package"]}
この例では、Unity の Test Framework パッケージに com.unity.some-package と com.unity.other-package パッケージのテストを加えています。
ノート: Test Framework が
testables
属性の変更をすぐに反映するとは限らないので、パッケージを再度インポートする必要があるかもしれません。