12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #if TEST_FRAMEWORK
- using NUnit.Framework.Interfaces;
- using Packages.Rider.Editor.UnitTesting;
- using UnityEngine.TestRunner;
-
- [assembly: TestRunCallback(typeof(SyncTestRunCallback))]
-
- namespace Packages.Rider.Editor.UnitTesting
- {
- internal class SyncTestRunCallback : ITestRunCallback
- {
- public void RunStarted(ITest testsToRun)
- {
- }
-
- public void RunFinished(ITestResult testResults)
- {
- SyncTestRunEventsHandler.instance.OnRunFinished();
- }
-
- public void TestStarted(ITest test)
- {
- if (!test.IsSuite)
- SyncTestRunEventsHandler.instance.OnTestStarted(GenerateId(test));
- }
-
- public void TestFinished(ITestResult result)
- {
- if (!result.Test.IsSuite)
- SyncTestRunEventsHandler.instance.OnTestFinished();
- }
-
- // https://jetbrains.team/p/net/code/dotnet-libs/files/f04cde7d1dd70ee13bf5532e30f929b9b5ed08a4/ReSharperTestRunner/src/Adapters/TestRunner.Adapters.NUnit3/RemoteTaskDepot.cs?tab=source&line=129
- private static string GenerateId(ITest node)
- {
- // ES: Parameterized tests defined in a parametrized test fixture, though
- // constructed for a particular test fixture with the given parameter, have identical fullname that does
- // not include parameters of parent testfixture (name of the without parameters is used instead).
- // This leads to 'Test with {id} id is already running' message.
- var typeName = node.GetType().Name;
- if (typeName == "ParameterizedMethod" ||
- typeName == "GenericMethod")
- return $"{node.Parent.FullName}.{node.Name}";
-
- return node.FullName;
- }
- }
- }
- #endif
|