Version: 6000.3
语言: 中文
包布局
为包创建示例

将测试添加到包

与任何类型的开发一样,最好将测试添加到包中。您必须执行三件事才能在包上设置测试:

  1. 创建 C# 测试文件,并将其放在 Tests 文件夹下
  2. 测试创建 asmdef 文件
  3. 为包启用测试

测试文件的位置

可以将测试文件添加到包的 Tests 文件夹中EditorRuntime子文件夹。例如,带有测试的简单包可能如下所示:

<package-root>
  ├── package.json
  ├── Editor
  │     ├── <company-name>.<package-name>.Editor.asmdef
  │     └── EditorExample.cs
  ├── Runtime
  │     ├── <company-name>.<package-name>.asmdef
  │     └── RuntimeExample.cs
  └── Tests
        ├── Editor
        │    ├── <company-name>.<package-name>.Editor.Tests.asmdef
        │    └── EditorExampleTest.cs
        └── Runtime
             ├── <company-name>.<package-name>.Tests.asmdef
             └── RuntimeExampleTest.cs

每个子文件夹都必须包含一个.asmdef文件,提供对编辑器和运行时程序集的引用。装配定义文件还提供对测试装配文件的引用。有关详细信息,请参阅测试的程序集定义文件

用于测试的装配定义文件

使用测试框架测试框架包(以前称为测试运行程序)是一种 Unity 工具,可在编辑模式和播放模式下测试代码,也可以在目标平台(如独立、Android 或 iOS)上测试代码。更多信息
请参阅术语表
package 以创建或编辑装配定义文件。有关详细信息,请参阅创建测试程序集

虽然可以选择直接编辑装配定义文件,但需要确保添加以下引用:

属性 类型 描述
名字 字符串 不带文件扩展名的程序集的名称。
引用 字符串数组 对编辑器和运行时程序集的引用。程序集定义文件需要不同的引用,具体取决于测试类型:
- 对于编辑器测试,添加对包的编辑器和运行时程序集的引用。
- 对于运行时测试,仅添加对包的运行时程序集的引用。
可选UnityReferences 字符串数组 此 Unity 引用列表必须包括"TestAssemblies"将装配标记为测试装配。这会添加对nunit.framework.dllUnityEngine.TestRunner.dll库添加到装配定义。
包括平台 字符串数组 对于编辑器测试,此平台列表必须包含"Editor"平台。

提示: 您也可以在检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
.有关详细信息,请参阅装配定义

编辑器文件示例

编辑器测试.asmdef文件如下所示:

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

运行时文件示例

运行时测试.asmdef文件如下所示:

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

为包启用测试

嵌入式包嵌入式包是存储在PackagesUnity 项目根目录。这与您从包服务器下载的大多数包不同,并且是不可变的。更多信息
请参阅术语表
,则无需显式启用测试,因为嵌入式包正在开发中。

但是,对于其他类型的依赖项,您需要将 testables 属性添加到项目清单每个 Unity 项目都有一个项目清单,用作包管理器的入口点。此文件必须在<project>/Packages目录。包管理器使用它来配置许多内容,包括该项目的依赖项列表,以及要查询包的任何包存储库。更多信息
请参阅术语表
并添加包含要运行的测试的包的名称。这包括直接和间接依赖关系当项目请求一个本身“依赖”另一个包的包时,就会出现间接或传递依赖关系。例如,如果您的项目依赖于alembic@1.0.7包,而包又取决于timeline@1.0.0package,那么你的项目直接依赖于 Alembic,间接依赖于 Timeline。更多信息
请参阅术语表
项目。例如:

{
  "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-packagecom.unity 中。other-package 包。

注意:您可能需要再次导入包,因为测试框架并不总是立即获取对testables属性。

包布局
为包创建示例