包含此页的版本:
不含此页的版本:
与任何类型的开发一样,最好将测试添加到包中。您必须执行三件事才能在包上设置测试:
可以将测试文件添加到包的 Tests 文件夹中Editor和Runtime子文件夹。例如,带有测试的简单包可能如下所示:
<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.dll和UnityEngine.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-package 和 com.unity 中。other-package 包。
注意:您可能需要再次导入包,因为测试框架并不总是立即获取对testables属性。