docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    How to get test results

    You can receive callbacks when the active test run, or individual tests, starts and finishes. You can register callbacks by invoking RegisterCallbacks on the TestRunnerApi with an instance of a class that implements ICallbacks. There are four ICallbacks methods for the start and finish of both the whole run and each level of the test tree.

    Example

    An example of how listeners can be set up:

    Note: Listeners receive callbacks from all test runs, regardless of the registered TestRunnerApi for that instance.

    public void SetupListeners()
    {
       var api = ScriptableObject.CreateInstance<TestRunnerApi>();
       api.RegisterCallbacks(new MyCallbacks());
    }
    
    private class MyCallbacks : ICallbacks
    {
        public void RunStarted(ITestAdaptor testsToRun)
        {
           
        }
    
        public void RunFinished(ITestResultAdaptor result)
        {
           
        }
    
        public void TestStarted(ITestAdaptor test)
        {
           
        }
    
        public void TestFinished(ITestResultAdaptor result)
        {
            if (!result.HasChildren && result.ResultState != "Passed")
            {
                Debug.Log(string.Format("Test {0} {1}", result.Test.Name, result.ResultState));
            }
        }
    }
    

    Note: The registered callbacks are not persisted on domain reloads. So it is necessary to re-register the callback after a domain reloads, usually with InitializeOnLoad.

    It is possible to provide a priority as an integer as the second argument when registering a callback. This influences the invocation order of different callbacks. The default value is zero. It is also possible to provide RegisterCallbacks with a class instance that implements IErrorCallbacks that is an extended version of ICallbacks. IErrorCallbacks also has a callback method for OnError that invokes if the run fails to start, for example, due to compilation errors or if an IPrebuildSetup throws an exception.

    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)