
Unity 2020.3 LTS バージョンにて、複数のTests フォルダに分けてテストコードを作成したとき、 Unity Test Runner が認識してくれなかったときの対処方法を記載しています。
以下のような構成でテストコードを作成しているとき、一つのテストフォルダ配下しか認識してくれなかった時があり、解決するために確認したことを記載しています。
上記のように2つの Tests フォルダ配下にそれぞれ必要なテストコードを作成していましたが、 片方の Tests フォルダしか認識してくれません。
-> -> で Unity Test Runner を開くと以下のように、NodachiFrameowork 配下の Tests しか認識していません。
Unity Test Runner では Edit Mode と Play Mode の2種類のテストモードがあり、 2つの Tests フォルダ配下に、それぞれ Edit Mode でのテストコードを格納しています。
Tests フォルダにはテスト実行時に必要とするアセンブリ定義ファイルが格納されており、 その設定がおかしい可能性があります。
とりあえず Unity Editor 上でアセンブリ定義ファイルを
して画面上の Inspector を確認してみます。ちゃんと認識してくれる Tests フォルダ配下のアセンブリ定義ファイルと認識してくれない Tests フォルダ配下のアセンブリ定義を比較してみます。
微妙に違いました。画像の左は、Unity Test Runner 上から最初に Edit Mode
にチェックを入れたものです。
注意深くみればもう判るのですが、
Tests として認識されないアセンブリ定義ファイルのほうは、Exclude Platforms
とジャンル名が異なります。
ということで、Edit Mode を除外する設定となってしまっていました。
アセンブリ定義ファイルはテキスト形式ですので、直接 エディタで開き編集できます。
以下、編集前。ハイライト部分を修正しました。
{
"name": "XxxxTests",
"rootNamespace": "",
"references": [
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
"テストに必要なパッケージ"
],
"includePlatforms": [],
"excludePlatforms": [
"Editor"
],
"allowUnsafeCode": false,
"overrideReferences": true,
"precompiledReferences": [
"nunit.framework.dll"
],
"autoReferenced": false,
"defineConstraints": [
"UNITY_INCLUDE_TESTS"
],
"versionDefines": [],
"noEngineReferences": false
}
以下は修正後です。
{
"name": "XxxxTests",
"rootNamespace": "",
"references": [
"UnityEngine.TestRunner",
"UnityEditor.TestRunner",
"テストに必要なパッケージ"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": true,
"precompiledReferences": [
"nunit.framework.dll"
],
"autoReferenced": false,
"defineConstraints": [
"UNITY_INCLUDE_TESTS"
],
"versionDefines": [],
"noEngineReferences": false
}
アセンブリ定義ファイルを修正した後、Unity Test Runner を確認すると、 無事に、修正したフォルダ配下のテストコードが認識されました。
日付 | 変更概要 |
---|---|
なし |
コメント、ありがとうございます。
ごめんなさい。エラーでうまく送信できませんでした。ご迷惑をおかけします。しばらくおいてから再度送信を試していただくか、以下から DM などでご連絡頂ければと思います。
Twitter:@NodachiSoft_jpお名前:以下の内容でコメントを送信します。よろしければ、「送信」を押してください。修正する場合は「戻る」を押してください
お名前: