34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
|
# 17\. Running tests programmatically
|
||
|
|
||
|
## Learning objectives
|
||
|
|
||
|
This section will introduce the TestRunnerApi, teaching you how to trigger a test run programmatically.
|
||
|
|
||
|
## Intro and motivation
|
||
|
|
||
|
A recent new feature in the test framework is the addition of the `TestRunnerApi`. This api allows for interactions with the test framework programmatically, such as listing tests, running tests and receiving test results.
|
||
|
|
||
|
For details and examples, see the TestRunnerApi documentation.
|
||
|
|
||
|
## Exercise
|
||
|
|
||
|
The [sample](./welcome.md#import-samples) `17_RunningTestsProgrammatically` contains a mono behavior script called `MyMonoBehaviour`, which has a property for whether it has been configured. The project also contains a scene with multiple game objects with `MyMonoBehaviour` on them.
|
||
|
|
||
|
The task is to create a set of scene validation tests, which verifies that the scene MyScene.unity:
|
||
|
|
||
|
* The scene contains precisely 5 game objects with `MyMonoBehaviour` on them.
|
||
|
|
||
|
* All game objects with `MyMonoBehaviour` must have `IsConfigured` set to true
|
||
|
|
||
|
After these tests have been created, implement a MenuItem, which can trigger the test run of the scene validation tests, using the `TestRunnerApi` and report the result to the console log.
|
||
|
|
||
|
It is recommended to give your scene validation test a category, so it is easier to make a filter that runs those exclusively.
|
||
|
|
||
|
## Hints
|
||
|
|
||
|
* Remember to include the test mode in the filter provided to `Execute`
|
||
|
|
||
|
## Solution
|
||
|
|
||
|
A full example solution for the excersise is available in the sample `17_RunningTestsProgrammatically_Solution`.
|