Maze / Library /PackageCache /com.unity.ide.rider@3.0.21 /Rider /Editor /UnitTesting /RiderTestRunner.cs
| using JetBrains.Annotations; | |
| using UnityEngine; | |
| using UnityEditor; | |
| using UnityEditor.TestTools.TestRunner.Api; | |
| using System; | |
| namespace Packages.Rider.Editor.UnitTesting | |
| { | |
| /// <summary> | |
| /// Is called by Rider Unity plugin via reflections | |
| /// </summary> | |
| [] | |
| public static class RiderTestRunner | |
| { | |
| private static readonly TestsCallback Callback = ScriptableObject.CreateInstance<TestsCallback>(); | |
| /// <summary> | |
| /// Is called by Rider Unity plugin via reflections | |
| /// </summary> | |
| /// <param name="sessionId"></param> | |
| /// <param name="testMode"></param> | |
| /// <param name="assemblyNames"></param> | |
| /// <param name="testNames"></param> | |
| /// <param name="categoryNames"></param> | |
| /// <param name="groupNames"></param> | |
| /// <param name="buildTarget"></param> | |
| /// <param name="callbacksHandlerCodeBase"></param> | |
| /// <param name="callbacksHandlerTypeName"></param> | |
| /// <param name="callbacksHandlerDependencies"></param> | |
| [] | |
| public static void RunTestsWithSyncCallbacks(string sessionId, int testMode, string[] assemblyNames, | |
| string[] testNames, string[] categoryNames, string[] groupNames, int? buildTarget, | |
| string callbacksHandlerCodeBase, string callbacksHandlerTypeName, string[] callbacksHandlerDependencies) | |
| { | |
| Debug.LogError("Update Test Framework package to v.1.1.1+ to run tests from Rider."); | |
| throw new NotSupportedException("Incompatible `Test Framework` package in Unity. Update to v.1.1.1+"); | |
| SyncTestRunEventsHandler.instance.InitRun(sessionId, callbacksHandlerCodeBase, callbacksHandlerTypeName, callbacksHandlerDependencies); | |
| RunTests(testMode, assemblyNames, testNames, categoryNames, groupNames, buildTarget); | |
| } | |
| /// <summary> | |
| /// Is called by Rider Unity plugin via reflections | |
| /// </summary> | |
| /// <param name="testMode"></param> | |
| /// <param name="assemblyNames"></param> | |
| /// <param name="testNames"></param> | |
| /// <param name="categoryNames"></param> | |
| /// <param name="groupNames"></param> | |
| /// <param name="buildTarget"></param> | |
| [] | |
| public static void RunTests(int testMode, string[] assemblyNames, string[] testNames, string[] categoryNames, string[] groupNames, int? buildTarget) | |
| { | |
| Debug.LogError("Update Test Framework package to v.1.1.1+ to run tests from Rider."); | |
| throw new NotSupportedException("Incompatible `Test Framework` package in Unity. Update to v.1.1.1+"); | |
| CallbackData.instance.isRider = true; | |
| var api = ScriptableObject.CreateInstance<TestRunnerApi>(); | |
| var settings = new ExecutionSettings(); | |
| var filter = new Filter | |
| { | |
| assemblyNames = assemblyNames, | |
| testNames = testNames, | |
| categoryNames = categoryNames, | |
| groupNames = groupNames, | |
| targetPlatform = (BuildTarget?) buildTarget | |
| }; | |
| if (testMode > 0) // for future use - test-framework would allow running both Edit and Play test at once | |
| filter.testMode = (TestMode) testMode; | |
| settings.filters = new []{ | |
| filter | |
| }; | |
| api.Execute(settings); | |
| api.UnregisterCallbacks(Callback); // avoid multiple registrations | |
| api.RegisterCallbacks(Callback); // This can be used to receive information about when the test suite and individual tests starts and stops. Provide this with a scriptable object implementing ICallbacks | |
| } | |
| } | |
| } |