Unity Test Runner で自動テストを使ってみましょう。
CS0246 エラーが出た場合は、Assembly Definition の設定で解決できます。
Unity Test Runner
Project
Test Runner の EditMode と PlayMode から Playerコンポーネントのテストをしたいと思います。
![Project](https://www.papacoder.net/wp-content/uploads/2020/07/ss02.jpg)
Visual Studio 2019
Visual Studio 2019 でソリューションの構成はこのようになっています。
![Visual Studio 2019](https://www.papacoder.net/wp-content/uploads/2020/07/ss03.jpg)
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 にアクセスできないことが原因でした。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9VW5pdHklMjBBc3NlbWJseSUyMERlZmluaXRpb24lMjAlRTUlQUUlOEMlRTUlODUlQTglRTMlODElQUIlRTclOTAlODYlRTglQTclQTMlRTMlODElOTclRTMlODElOUYmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ21pZGRsZSZzPTE4OTMwOTI1NmUwYjk2Mzg0MmQ2MDk5MmM2NzhiNjBi&mark-x=142&mark-y=151&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdG9SaXNvdVAmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTI2NTIzNDBiNDlkZGUwZmM2MTE4OGNlYzI4MmUxNDA0&blend-x=142&blend-y=491&blend-mode=normal&s=a8ff5e10fc9772547564b9d7fe5163b6)
解決方法
Scriptsフォルダに Assembly Definition を作成して、EditMode と PlayMode から参照できるように設定します。
Projectウィンドウで Create -> Assembly Definition を選択します。
ここでは、名前を MyAssembly にしました。
![Assembly Definition](https://www.papacoder.net/wp-content/uploads/2020/07/ss04.jpg)
Visual Studio 2019 を見ると、Playerコンポーネントが MyAssembly に入っています。
![MyAssembly](https://www.papacoder.net/wp-content/uploads/2020/07/ss05.jpg)
Inspectorウィンドウで、EditMode と PlayMode の Assembly Definition References に MyAssembly を追加します。
![Assembly Definition References](https://www.papacoder.net/wp-content/uploads/2020/07/ss06.jpg)
エラーが出なくなりました!
まとめ
Unity Test Runner を使って自動テストを書いていきましょう。
Assembly Definition は今回初めて知りました。
まだ Unity について知らないことがいっぱいあるので、いろいろ触っていきたいと思います。
コメント