Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Добавление тестов в пакет

Как и при любой другой разработке, рекомендуется добавлять в пакет тесты. Есть три вещи, которые вы должны сделать, чтобы настроить тесты для вашего пакета:

  1. Создайте тестовые файлы C# и поместите их в папку "Тесты".
  2. Создайте файлы asmdef для своих тестов.
  3. Включите тесты для вашего пакета.

Расположение тестовых файлов

Вы можете добавить тестовые файлы в папку Tests вашего пакета в подпапках Editor и Runtime. Например, простой пакет с тестами может выглядеть примерно так:

MyPackage ├── package.json ├── Editor │ ├── MyPackage.Editor.asmdef │ └── EditorExample.cs ├── Runtime │ ├── MyPackage.Runtime.asmdef │ └── RuntimeExample.cs └── Tests ├── Editor │ ├── MyPackage.EditorTests.asmdef │ └── EditorExampleTest.cs └── Runtime ├── MyPackage.RuntimeTests.asmdef └── RuntimeExampleTest.cs

Каждая из этих подпапок должна содержать файл .asmdef, содержащий ссылки на сборки Editor и Runtime. Файлы определения сборки также содержат ссылку на файлы тестовой сборки. Дополнительные сведения см. в разделе Файлы определения сборки для тестов.

Файлы определения сборки для тестов

Вы можете напрямую редактировать файлы определения сборки. Обязательно добавьте следующие ссылки:

Атрибут Тип Описание
name String Имя сборки без расширения файла.
references Array of Strings Ссылки на сборки Editor и Runtime. Файлы определения сборки требуют разных ссылок в зависимости от того, предназначены ли они для тестов Editor или Runtime:
- Для тестов редактора добавьте ссылку на сборки пакета Editor и Runtime.
- Для тестов среды выполнения добавьте ссылку только на сборку среды выполнения пакета.
optionalUnityReferences Array of Strings Этот список ссылок Unity должен включать "TestAssemblies", чтобы пометить сборку как тестовую. Это добавляет ссылки на библиотеки unit.framework.dll и UnityEngine.TestRunner.dll в определение сборки.
includePlatforms Array of Strings Для теста Editor этот список платформ должен включать платформу Editor.

Совет. Вы также можете редактировать файлы определения сборки в Inspectorокне Unity, которое отображает информацию о текущем выбранном игровом объекте, активе или настройках проекта, позволяя вам просматривать и редактировать значения. Дополнительная информация
См. в Словарь
. Дополнительные сведения см. в разделе Определения сборки.

Пример файла редактора

Тестовый файл редактора .asmdef должен выглядеть следующим образом:

{ "name": "MyPackage.Editor.Tests", "references": [ "MyPackage.Editor", "MyPackage" ], "optionalUnityReferences": [ "TestAssemblies" ], "includePlatforms": [ "Editor" ], "excludePlatforms": [] }

Пример исполняемого файла

Тестовый файл .asmdef должен выглядеть следующим образом:

{ "name": "MyPackage.Tests", "references": [ "MyPackage" ], "optionalUnityReferences": [ "TestAssemblies" ], "includePlatforms": [], "excludePlatforms": [] }

Включение тестов для пакета

Для встроенных пакетов
См. Словарь
, вам не нужно явно включать тесты, поскольку встроенные пакеты находятся в разработке.

Однако для других типов зависимостей
См. в Словарь
, вам нужно добавить testables в манифесте проектаКаждый проект Unity имеет манифест проекта, который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге /Packages. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Подробнее
Посмотрите в Словарь
и добавьте имена пакетов, в которых есть тесты, которые вы хотите запустить . Это включает в себя прямые и косвенные зависимости проекта. Например:

{ "dependencies": { "com.unity.some-package": "1.0.0", "com.unity.other-package": "2.0.0", "com.unity.yet-another-package": "3.0.0", }, "testables": ["com.unity.some-package", "com.unity.other-package"] }

В этом примере добавляются тесты для пакетов com.unity.some-package и com.unity.other-package в Test FrameworkПакет среды тестирования (ранее называвшийся Test Runner) — это инструмент Unity, который тестирует ваш код как в режиме редактирования, так и в режиме воспроизведения, а также на целевых платформах, таких как Standalone, Android или iOS. Подробнее
См. в пакете Словарь
.

Примечание. Возможно, вам потребуется повторно импортировать пакет, поскольку среда тестирования не всегда сразу улавливает изменения в атрибуте testables.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3