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