【Unity】Test Runner で自動テストを試してみようとしたら CS0246 エラーが出て困ってしまった

アルゴイアルプス Unity
アルゴイアルプス

Unity Test Runner で自動テストを使ってみましょう。
CS0246 エラーが出た場合は、Assembly Definition の設定で解決できます。

Unity Test Runner

Project

Test Runner の EditMode と PlayMode から Playerコンポーネントのテストをしたいと思います。

Project
Project

Visual Studio 2019

Visual Studio 2019 でソリューションの構成はこのようになっています。

Visual Studio 2019
Visual Studio 2019

CS0246 エラー

Unity Editor のコンソールに下記のエラーが出力されます。
困った……。

Assets\Tests\EditMode\Editor\EditModeTestScript.cs(16,13): error CS0246: The type or namespace name ‘Player’ could not be found (are you missing a using directive or an assembly reference?)

Assembly Definition

エラーの原因は、Assembly Definition にありました。
下記のサイトで詳しく説明されています。
EditMode や PlayMode から Assembly-CSharp にアクセスできないことが原因でした。

Unity Assembly Definition 完全に理解した - Qiita
はじめにこの記事におけるソースコードはすべて Public Domain です。また本記事において利用しているUnityバージョンは2019.2です。Assembly Definitionとは…

解決方法

Scriptsフォルダに Assembly Definition を作成して、EditMode と PlayMode から参照できるように設定します。

Projectウィンドウで Create -> Assembly Definition を選択します。
ここでは、名前を MyAssembly にしました。

Assembly Definition
Assembly Definition

Visual Studio 2019 を見ると、Playerコンポーネントが MyAssembly に入っています。

MyAssembly
MyAssembly

Inspectorウィンドウで、EditMode と PlayMode の Assembly Definition References に MyAssembly を追加します。

Assembly Definition References
Assembly Definition References

エラーが出なくなりました!

まとめ

Unity Test Runner を使って自動テストを書いていきましょう。
Assembly Definition は今回初めて知りました。
まだ Unity について知らないことがいっぱいあるので、いろいろ触っていきたいと思います。

コメント

タイトルとURLをコピーしました