Unity 5.6にアップデートしたらUnitTestが動作しなかったときの対応

シェアする

ヨメレバCSS

 Unit 5.6がリリースされて入れてみたらエラーになったときの話。

スポンサーリンク
GoogleAdSence レクタングル(大)

NUnit3になっていた

 Unityのインストールディレクトリ以下にある、「Editor\Data\Managed\nunit.framework.dll」のプロパティから詳細を見ると、NUnit3になっていました。

 Unit 5.5まではNUnit2だったのですが、NUnit3に変更されたようです。Unit5、ラストリリースというこのタイミングで…いやむしろ、だからか。

 よってUnitTestの書き方も、NUnit3系に習う必要があります。

 NUnit3系のドキュメントは、NUnit Documentation Wikiにあります。

TestCaseにResultは使用できなくなっていた

 TestCaseにおいて正しい結果を照合するためのResultパラメータがNUnit3では消えていました。

 Resultを使った、

 のようなテストを書いていると、「error CS0117: NUnit.Framework.TestCaseAttribute' does not contain a definition for Result’」が大量に発生しました…

 対応としては、「Resultを ExpectedResultに変える」ようにします。

参考:TestCase Attribute

TestFixtureSetUpAttribute、 TestFixtureTearDownAttributeは廃止(obsolete)されていた

 TestFixtureSetUp属性を使用していると

「 warning CS0618: NUnit.Framework.TestFixtureSetUpAttribute' is obsolete: Use OneTimeSetUpAttribute’」

TestFixtureTearDown属性を使用していると

「 warning CS0618: NUnit.Framework.TestFixtureTearDownAttribute' is obsolete: Use OneTimeTearDownAttribute’」

が発生しました。

 メッセージにあるように、それぞれ「OnetimeSetUp」「OneTimeTearDown」に変更すれば問題ありません。

 今は警告で済んでいますが、いずれ消えるかもしれない兆候なので、早めに変えておくに越したことはないでしょう。