53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using System;
|
|
using UnityEditor.TestTools.TestRunner.Api;
|
|
using UnityEngine;
|
|
|
|
namespace UnityEditor.TestTools.TestRunner.CommandLineTest
|
|
{
|
|
[Serializable]
|
|
internal class ExitCallbacks : ScriptableObject, IErrorCallbacks
|
|
{
|
|
internal static bool preventExit;
|
|
|
|
public void RunFinished(ITestResultAdaptor testResults)
|
|
{
|
|
if (preventExit)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!ExitCallbacksDataHolder.instance.AnyTestsExecuted)
|
|
{
|
|
Debug.LogFormat(LogType.Warning, LogOption.NoStacktrace, null, "No tests were executed");
|
|
}
|
|
|
|
EditorApplication.Exit(ExitCallbacksDataHolder.instance.RunFailed ? (int)Executer.ReturnCodes.Failed : (int)Executer.ReturnCodes.Ok);
|
|
}
|
|
|
|
public void TestStarted(ITestAdaptor test)
|
|
{
|
|
if (!test.IsSuite)
|
|
{
|
|
ExitCallbacksDataHolder.instance.AnyTestsExecuted = true;
|
|
}
|
|
}
|
|
|
|
public void TestFinished(ITestResultAdaptor result)
|
|
{
|
|
if (!result.Test.IsSuite && (result.TestStatus == TestStatus.Failed || result.TestStatus == TestStatus.Inconclusive))
|
|
{
|
|
ExitCallbacksDataHolder.instance.RunFailed = true;
|
|
}
|
|
}
|
|
|
|
public void RunStarted(ITestAdaptor testsToRun)
|
|
{
|
|
}
|
|
|
|
public void OnError(string message)
|
|
{
|
|
EditorApplication.Exit((int)Executer.ReturnCodes.RunError);
|
|
}
|
|
}
|
|
}
|