Singularity/Library/PackageCache/com.unity.test-framework@1..../Documentation~/reference-icallbacks.md
2024-05-06 11:45:45 -07:00

2.6 KiB

ICallbacks

An interface for receiving callbacks when running tests. All test runs invoke the callbacks until the next domain reload.

The RunStarted method runs when the whole test run starts. Then the TestStarted method runs with information about the tests it is about to run on an assembly level. Afterward, it runs on a test fixture level and then on the individual test. If the test is a parameterized test, then it is also invoked for each parameter combination. After each part of the test tree have completed running, the corresponding TestFinished method runs with the test result. At the end of the run, the RunFinished event runs with the test result.

An extended version of the callback, IErrorCallbacks, extends this ICallbacks to receive calls when a run fails due to a build error.

Public methods

Syntax Description
void RunStarted(ITestAdaptor testsToRun) Invoked when the test run starts. The ITestAdaptor represents the tree of tests to run.
void RunFinished(ITestResultAdaptor result) Invoked when the test run finishes. The ITestResultAdaptor represents the results of the set of tests that have run.
void TestStarted(ITestAdaptor test) Invoked on each node of the test tree, as that part of the tree starts to run.
void TestFinished(ITestResultAdaptor result) Invoked on each node of the test tree once that part of the test tree has finished running. The ITestResultAdaptor represents the results of the current node of the test tree.

Example

An example that sets up a listener on the API. The listener prints the number of failed tests after the run has finished:

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)
    {
        Debug.Log(string.Format("Run finished {0} test(s) failed.", result.FailCount));
    }

    public void TestStarted(ITestAdaptor test)
    {
  
    }

    public void TestFinished(ITestResultAdaptor result)
    {
  
    }
}