前提・実現したいこと
Assets/Plugins 配下のコードのテストをしたい。
ディレクトリ構成
Assets/ Plugins/ CustomServer/ # 独自ライブラリ。Assembly Definition ファイルは配置されていない UriManager/ Model/ CustomUri.cs Tests/ Editor/ Model/ CustomUriTest.cs Tests.asmdef
発生している問題・エラーメッセージ
Assets/Plugins/UriManager/Editor/Tests/Model/CustomUriTest.cs(3,18): error CS0234: The type or namespace name 'Model' does not exist in the namespace 'UriManager' (are you missing an assembly reference?)
該当のソースコード
UriManager/Model/CustomUri.cs
using System using CustomServer; // 独自ライブラリ namespace UriManager.Model { public class CustomUri { public string Host; public int Port; public CustomServerConfig ServerConfig { get { return CustomServerConfig { Host = Host, Port = Port }; } } public static CustomUri Parse(string uriString) { string[] splitted = uriString.Split(new char[] { ',' }, 2); return new CustomUri { Host = splitted[0], Port = int.Parse(splitted[1]) }; } } }
UriManager/Tests/Editor/Model/CustomUriTest.cs
using System; using NUnit.Framework; using UriManager.Model; using Assert = UnityEngine.Assertions.Assert; namespace UriManager.Editor.Model.Tests { public class CustomUriTest { public CustomUri customUri; [Test] public void Parse() { string urlString = "https://custom.com,8080"; // 正しい Host,Port, の場合 Assert.AreEqual( CustomUri.Parse(urlString), new CustomUri { Host = "https://custom.com", Port = 8080, } ); } } }
UriManager/Tests/Editor/Model/Tests.asmdef
{ "name": "Tests", "references": [], "optionalUnityReferences": [ "TestAssemblies" ], "includePlatforms": [ "Editor" ], "excludePlatforms": [], "allowUnsafeCode": false, "overrideReferences": false, "precompiledReferences": [], "autoReferenced": true, "defineConstraints": [] }
試したこと
Assembly Definition ファイルを UriManager 配下に配置して riManager/Editor/Tests/Model/Tests.asmdef
の references
に追記した。
→ Custom Server 配下への Assembly Definition ファイル配置を促すエラーが発生。
Custom Server は他のライブラリも利用しているため、再帰的に配置していかなければならず現実的ではない。
補足情報(FW/ツールのバージョンなど)
Unity 2018.4.0f1 (都合によりバージョンアップはできない)
あなたの回答
tips
プレビュー