Testing your code
Use the Unity Test Framework to write and run tests for your Editor or runtime code.
Read time 2 minutesLast updated 8 days ago
Write tests for your Edit mode or Play mode code and run them through the Unity Editor's Test Runner window, from the command line, or from code. Unity Test Framework integrates a custom version of NUnit, the open-source unit testing library for .NET languages and extends it with Unity-specific capabilities.
As an alternative to NUnit tests, Unity Test Framework provides Unity tests, which can interact with Unity-specific concepts such as frames, the application loop, and domain reload. A Unity test runs as a coroutine in Play mode and in the callback loop in Edit mode.
EditorApplication.updateUnity tests can yield instructions for the Unity Editor. Once the instruction is complete, the test run continues. You can also in a Unity test to skip a frame and defer an operation until the next iteration of either the or the per-frame game update loop.
yield return nullEditorApplication.updateThis documentation assumes you're familiar with NUnit and with fundamental principles of unit testing in C#. If you're not, refer to Unit testing C# with NUnit and .NET Core and Unit testing best practices in the Microsoft documentation.
Topic | Description |
|---|---|
| Get started with Unity Test Framework | Create your first test assembly and sample Unity Test Framework tests. |
| Command-line reference | Run tests and configure test settings from the Unity Editor command line. |
| Writing tests | Write Unity tests for Edit mode or Play mode code with the Unity Test Framework C# APIs. |
| Running tests | Run Unity tests from the Editor's Test Runner window, from the command line, or directly from code. |
| Unity Test Framework learning materials | Follow a practical tutorial with a series of exercises to help you learn the fundamentals of Unity Test Framework. |