private bool TryLaunchUnitTestsInternal() { try { var riderPackageAssembly = RiderPackageInterop.GetAssembly(); if (riderPackageAssembly == null) { return(false); } var launcherType = riderPackageAssembly.GetType("Packages.Rider.Editor.UnitTesting.RiderTestRunner"); if (launcherType == null) { return(false); } var assemblyNames = myLaunch.TestFilters.Select(a => a.AssemblyName).ToArray(); var testNames = myLaunch.TestFilters.SelectMany(a => a.TestNames).ToArray(); var runTestsMethod = launcherType.GetMethod("RunTests"); if (runTestsMethod == null) { return(false); } var mode = (int)myLaunch.TestMode; // 0 for Both, 1 for Edit, 2 for Play runTestsMethod.Invoke(null, new object[] { mode, assemblyNames, testNames, null, null, null }); return(true); } catch (Exception e) { ourLogger.Error(e, "Exception while TryLaunchUnitTestsInternal."); } return(false); }
private bool TryLaunchUnitTestsInternal() { try { var riderPackageAssembly = RiderPackageInterop.GetAssembly(); var launcherType = riderPackageAssembly?.GetType("Packages.Rider.Editor.UnitTesting.RiderTestRunner"); if (launcherType == null) { return(false); } var assemblyNames = myLaunch.TestFilters.Select(a => a.AssemblyName).ToArray(); var testNames = myLaunch.TestFilters.SelectMany(a => a.TestNames).ToArray(); var groupNames = myLaunch.TestFilters.SelectMany(a => a.GroupNames).ToArray(); var categoryNames = myLaunch.TestFilters.SelectMany(a => a.TestCategories).ToArray(); var mode = (int)myLaunch.TestMode; // 0 for Both, 1 for Edit, 2 for Play MethodInfo runTestsMethod; object[] args; if (myLaunch.ClientControllerInfo != null) { ourLogger.Verbose($"ClientController specified (SessionId={myLaunch.SessionId}): {myLaunch.ClientControllerInfo.TypeName}, {myLaunch.ClientControllerInfo.CodeBase}"); runTestsMethod = launcherType.GetMethod("RunTestsWithSyncCallbacks"); if (runTestsMethod == null) { ourLogger.Verbose($"Method 'RunTestsWithSyncCallbacks' not found in type '{launcherType.AssemblyQualifiedName}'"); return(false); } args = new object[] { myLaunch.SessionId, mode, assemblyNames, testNames, categoryNames, groupNames, null, myLaunch.ClientControllerInfo.CodeBase, myLaunch.ClientControllerInfo.TypeName, myLaunch.ClientControllerInfo.CodeBaseDependencies?.ToArray() }; } else { runTestsMethod = launcherType.GetMethod("RunTests"); if (runTestsMethod == null) { ourLogger.Verbose($"Method 'RunTests' not found in type '{launcherType.AssemblyQualifiedName}'"); return(false); } args = new object[] { mode, assemblyNames, testNames, categoryNames, groupNames, null }; } runTestsMethod.Invoke(null, args); return(true); } catch (Exception e) { ourLogger.Error(e, "Exception while TryLaunchUnitTestsInternal."); } return(false); }
internal TestEventsSender(UnitTestLaunch unitTestLaunch) { var assembly = RiderPackageInterop.GetAssembly(); if (assembly == null) { ourLogger.Error("EditorPlugin assembly is null."); return; } var data = assembly.GetType("Packages.Rider.Editor.UnitTesting.CallbackData"); if (data == null) { return; } ProcessQueue(data, unitTestLaunch); SubscribeToChanged(data, unitTestLaunch); }