Files
nightclub-arcadia/NightclubArcadia/Assets/Editor/SkillSystemTestRunner.cs
T

49 lines
1.6 KiB
C#

using UnityEditor;
using UnityEditor.TestTools.TestRunner.Api;
using UnityEngine;
/// <summary>
/// One-click EditMode test run for the skill system.
/// </summary>
public static class SkillSystemTestRunner
{
[MenuItem("Tools/Nightclub Arcadia/Run Skill EditMode Tests")]
public static void RunEditModeTests()
{
var api = ScriptableObject.CreateInstance<TestRunnerApi>();
var filter = new Filter
{
testMode = TestMode.EditMode,
assemblyNames = new[] { "NightclubArcadia.Skills.Tests" },
};
api.RegisterCallbacks(new Callbacks());
api.Execute(new ExecutionSettings(filter));
Debug.Log("[SkillSystemTestRunner] EditMode tests started — watch the Console / Test Runner.");
}
sealed class Callbacks : ICallbacks
{
public void RunStarted(ITestAdaptor testsToRun) { }
public void RunFinished(ITestResultAdaptor result)
{
Debug.Log($"[SkillSystemTestRunner] Finished. Pass:{result.PassCount} Fail:{result.FailCount} Skip:{result.SkipCount}");
if (result.FailCount > 0)
{
Debug.LogError("[SkillSystemTestRunner] One or more skill EditMode tests failed.");
}
}
public void TestStarted(ITestAdaptor test) { }
public void TestFinished(ITestResultAdaptor result)
{
if (result.TestStatus == TestStatus.Failed)
{
Debug.LogError($"[SkillSystemTestRunner] FAIL {result.FullName}\n{result.Message}\n{result.StackTrace}");
}
}
}
}