Class DevTestRunner
- Namespace
- GrindFest
- Assembly
- GrindFest.dll
In-game developer test runner. Discovers all DevTest subclasses and runs their public IEnumerator methods as test cases in the live game. No NUnit, no scene reload.
Run all tests: Ctrl+Shift+T or DevTestRunner.Instance.RunAllTests()
Run filtered:DevTestRunner.Instance.RunAllTests("PourWater") (substring match on ClassName.MethodName)
[DefaultExecutionOrder(-200)]
public class DevTestRunner : Singleton<DevTestRunner>
- Inheritance
-
objectDevTestRunner
- Inherited Members
Fields
- ProbeMenuAfterEachTest
When set, every test is followed by "can the main menu still be opened?" and the verdict is logged, naming the first test after which it cannot be.
Properties
- LastLogFilePath
Path to the most recent test run log file.
Methods
- ReportWorld()
What the world actually looks like to a test, in one log line. Written because two separate false trails during the 2026-09-20 WebGL run came from asking the scene listing (which walks root objects only) whether a component exists — a component on a child answered "not found" while being present. This asks the engine directly, including the navmesh triangulation, which is the ground truth for "is there a navmesh anywhere".
Parameterless on purpose: the agent bridge invokes by reflection and cannot pass arguments.
- RunAll()
Parameterless entry point for the agent bridge. Reflection cannot supply an optional argument, so
unity_call(DevTestRunner, RunAllTests)finds nothing to invoke — this is the name to call over the bridge, and the pattern to copy for anything else the bridge should be able to reach.
- RunAllTests(string)
Run tests. If
filteris provided, only tests whose "ClassName.MethodName" contains the filter (case-insensitive) will run. Returns the path to the log file.