一人で数時間結構ハマってしまったのでメモ。
概要
- UnityでPlayModeのテストを書いた
- Unity上では実行可能で正常にテストできた
- VisualStudio上では[UnityTest]のAttributeが見つからないエラー
結論
Unity上で以下を実行でエラーが消えた
- Edit >
- Preferences >
- ExternalTools >
- Regenerate Project files
- ExternalTools >
- Preferences >
要はUnityから外部ツールに渡しているファイル(参照?)に漏れがあった?ということと理解。UnityとVisualStudioで挙動に差が見られた場合はこれを一度やってみると良いのかもしれない。
現象
- EditModeの
[Test]
は問題なかった。 - PlayModeの
[UnityTest]
で以下のエラーがでた
型または名前空間の名前 'UnityTestAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください)
やったこと
以下ハマったログなので、役には立たないメモ。いつかまた新しいprojectを作ってハマるであろう自分の為に推論過程をメモ。
- 最初はVisualStudioのパッケージ(?)の問題かとおもい、VisualStudioからNuGetで何かインストールすんのかと思って調べていた。
-
[UnityTest]
は[Test]
と同じく、using NUnit.Framework
由来かと思ったが、ドキュメントを追うと、using UnityEngine.TestTools
の方から来てるらしい (多分) - NUnitは参照できてる。using時点でエラーは出ていない。ならVisualStudioではなくUnityの方の問題では?
- アセンブリ参照とやらを調べた結果以下の記事にたどり着く
- Unityでアセンブリ参照の仕方が分からない
- (まじ神。ありがとうございますmm)
- 記事の通り、
Regenerate Project files
して VisualStudioを再読み込みでエラーが消えた。
所管
- モックだからと言い聞かせていたが、いい加減コード量が増えてきたのでテストをちゃんとすることにした
- Unity独学で進めているけど、開発に戸惑う時間が多い
- 聞ける人を得るためにも、企業かチームに属するべきか。。。