Как и при любой другой разработке, рекомендуется добавлять в пакет тесты. Есть три вещи, которые вы должны сделать, чтобы настроить тесты для вашего пакета:
- Создайте тестовые файлы C# и поместите их в папку "Тесты".
- Создайте файлы asmdef для своих тестов.
- Включите тесты для вашего пакета.
Расположение тестовых файлов
Вы можете добавить тестовые файлы в папку 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 имеет манифест проекта, который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге
. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Подробнее
Посмотрите в Словарь и добавьте имена пакетов, в которых есть тесты, которые вы хотите запустить . Это включает в себя прямые и косвенные зависимости проекта. Например:
{
"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.