Version: Unity 6.2 (6000.2)
Language : English
13. Domain reload
15. Test cases

14. Preserve test state

Learning objectives

This section will cover how to let variables and information in your tests survive domain reloads using serialization.

Intro and motivation

When a domain reload happens, all scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary
are reloaded. That also means that most data in members of the test class are lost. In some cases that is an issue, as you might want to retain some information during a domain reload.

The solution to that is serialization. If you add a [SerializeField] attribute to the field in question, then it will retain its value. Note that there are some limitations to serialization in Unity, see Unity Serialization.

Exercise

The sample 14_PreserveTestState contains the solution for the previous assignment, with one exception; the file name is now a guid.

This means that in order to clean up correctly, the TearDown method needs to know the filename.

Currently, when running the test for the first time, the TearDown will fail because it’s not given a file name. On subsequent runs of the test, it will fail due to duplicate files with the same C# script in it.

The task is to fix this loss of the file name info by using serialization.

Solution

The solution is simple. Just add a [SerializeField] attribute to the filename field. The solution is included as sample 14_PreserveTestState_Solution.

13. Domain reload
15. Test cases
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961