ぶつかった問題
UnityでAssets配下に置いたC#スクリプトのテストを書こうとしてややハマりました。
自作のHoge
クラスをテストしようとして、テストコードからHoge
を呼び出したところ
The type or namespace name 'Hoge' could not be found (are you missing a using directive or an assembly reference?)
お前は何を言っているんだという感じですが、自作クラスへの参照がうまくいかないようです。
テストコード以外からは参照できているのになぜ。。。
解決方法
- テストしたいスクリプトを置いているフォルダで
右クリック → Create Assembly Definition
を実行、名前を入力してAssembly Definitionを作成 - テストコードを置いているフォルダ内のImport Settings(
Tests
フォルダならTests
という名前でフォルダ内に生成されているはず)のAssembly Definition References
で1
で作成したAssembly Definitionを追加してApply
これで無事に自作クラスがテストコードから参照できるようになりました。
所管
これぶっちゃけ超わかりにくいと思うんだけど、この件に言及している記事はなかなか見つけられず…
Unityに慣れてる人たち的には困らない案件なのか。。または最近のバージョンアップで追加された仕様でまだ被害者が少ないだけなのか。。。