49 lines
1.6 KiB
C#
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}");
|
|
}
|
|
}
|
|
}
|
|
}
|