using UnityEditor;
using UnityEditor.TestTools.TestRunner.Api;
using UnityEngine;
///
/// One-click EditMode test run for the skill system.
///
public static class SkillSystemTestRunner
{
[MenuItem("Tools/Nightclub Arcadia/Run Skill EditMode Tests")]
public static void RunEditModeTests()
{
var api = ScriptableObject.CreateInstance();
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}");
}
}
}
}