.vs
Assets
Library
APIUpdater
Artifacts
Bee
BuildPlayerData
PackageCache
com.unity.collab-proxy@2.5.2
com.unity.editorcoroutines@1.0.0
com.unity.ext.nunit@1.0.6
com.unity.feature.development@1.0.1
com.unity.ide.rider@3.0.31
com.unity.ide.visualstudio@2.0.22
Documentation~
Editor
AppleEventIntegration~
COMIntegration
Messaging
Plugins
ProjectGeneration
Testing
TestAdaptor.cs
TestAdaptor.cs.meta
TestResultAdaptor.cs
TestResultAdaptor.cs.meta
TestRunnerApiListener.cs
TestRunnerApiListener.cs.meta
TestRunnerCallbacks.cs
TestRunnerCallbacks.cs.meta
TestStatusAdaptor.cs
TestStatusAdaptor.cs.meta
VSWhere
AssemblyInfo.cs
AssemblyInfo.cs.meta
AsyncOperation.cs
AsyncOperation.cs.meta
COMIntegration.meta
Cli.cs
Cli.cs.meta
Discovery.cs
Discovery.cs.meta
FileUtility.cs
FileUtility.cs.meta
Image.cs
Image.cs.meta
KnownAssemblies.cs
KnownAssemblies.cs.meta
Messaging.meta
Plugins.meta
ProcessRunner.cs
ProcessRunner.cs.meta
ProjectGeneration.meta
SimpleJSON.cs
SimpleJSON.cs.meta
Solution.cs
Solution.cs.meta
SolutionParser.cs
SolutionParser.cs.meta
SolutionProjectEntry.cs
SolutionProjectEntry.cs.meta
SolutionProperties.cs
SolutionProperties.cs.meta
Symbols.cs
Symbols.cs.meta
Testing.meta
UnityInstallation.cs
UnityInstallation.cs.meta
UsageUtility.cs
UsageUtility.cs.meta
VSWhere.meta
VersionPair.cs
VersionPair.cs.meta
VisualStudioCodeInstallation.cs
VisualStudioCodeInstallation.cs.meta
VisualStudioEditor.cs
VisualStudioEditor.cs.meta
VisualStudioForMacInstallation.cs
VisualStudioForMacInstallation.cs.meta
VisualStudioForWindowsInstallation.cs
VisualStudioForWindowsInstallation.cs.meta
VisualStudioInstallation.cs
VisualStudioInstallation.cs.meta
VisualStudioIntegration.cs
VisualStudioIntegration.cs.meta
com.unity.ide.visualstudio.asmdef
com.unity.ide.visualstudio.asmdef.meta
.signature
CHANGELOG.md
CHANGELOG.md.meta
CONTRIBUTING.md
CONTRIBUTING.md.meta
Editor.meta
LICENSE.md
LICENSE.md.meta
ThirdPartyNotices.md
ThirdPartyNotices.md.meta
ValidationConfig.json
ValidationConfig.json.meta
ValidationExceptions.json
ValidationExceptions.json.meta
package.json
package.json.meta
com.unity.ide.vscode@1.2.5
com.unity.modules.ai@1.0.0
com.unity.modules.androidjni@1.0.0
com.unity.modules.animation@1.0.0
com.unity.modules.assetbundle@1.0.0
com.unity.modules.audio@1.0.0
com.unity.modules.cloth@1.0.0
com.unity.modules.director@1.0.0
com.unity.modules.imageconversion@1.0.0
com.unity.modules.imgui@1.0.0
com.unity.modules.jsonserialize@1.0.0
com.unity.modules.particlesystem@1.0.0
com.unity.modules.physics2d@1.0.0
com.unity.modules.physics@1.0.0
com.unity.modules.screencapture@1.0.0
com.unity.modules.subsystems@1.0.0
com.unity.modules.terrain@1.0.0
com.unity.modules.terrainphysics@1.0.0
com.unity.modules.tilemap@1.0.0
com.unity.modules.ui@1.0.0
com.unity.modules.uielements@1.0.0
com.unity.modules.umbra@1.0.0
com.unity.modules.unityanalytics@1.0.0
com.unity.modules.unitywebrequest@1.0.0
com.unity.modules.unitywebrequestassetbundle@1.0.0
com.unity.modules.unitywebrequestaudio@1.0.0
com.unity.modules.unitywebrequesttexture@1.0.0
com.unity.modules.unitywebrequestwww@1.0.0
com.unity.modules.vehicles@1.0.0
com.unity.modules.video@1.0.0
com.unity.modules.vr@1.0.0
com.unity.modules.wind@1.0.0
com.unity.modules.xr@1.0.0
com.unity.performance.profile-analyzer@1.2.2
com.unity.settings-manager@2.0.1
com.unity.test-framework@1.1.33
com.unity.testtools.codecoverage@1.2.6
com.unity.textmeshpro@3.0.6
com.unity.timeline@1.7.6
com.unity.ugui@1.0.0
com.unity.visualscripting@1.9.4
PackageManager
PlayModeViewStates
PlayerDataCache
ScriptAssemblies
Search
ShaderCache
SplashScreenCache
StateCache
UIElements
AnnotationManager
ArtifactDB
ArtifactDB-lock
BuildPlayer.prefs
BuildSettings.asset
EditorOnlyScriptingSettings.json
EditorOnlyVirtualTextureState.json
EditorSnapSettings.asset
EditorUserBuildSettings.asset
InspectorExpandedItems.asset
LastBuild.buildreport
LastSceneManagerSetup.txt
LibraryFormatVersion.txt
MonoManager.asset
SceneVisibilityState.asset
ScriptMapper
ShaderCache.db
SourceAssetDB
SourceAssetDB-lock
SpriteAtlasDatabase.asset
Style.catalog
expandedItems
ilpp.pid
Logs
Packages
ProjectSettings
UserSettings
obj
.vsconfig
Assembly-CSharp.Player.csproj
Assembly-CSharp.csproj
TM1.sln
Unity.CollabProxy.Editor.csproj
Unity.EditorCoroutines.Editor.csproj
Unity.Performance.Profile-Analyzer.Editor.csproj
Unity.PlasticSCM.Editor.csproj
Unity.Rider.Editor.csproj
Unity.Settings.Editor.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.csproj
Unity.TestTools.CodeCoverage.Editor.csproj
Unity.TextMeshPro.Editor.csproj
Unity.TextMeshPro.Player.csproj
Unity.TextMeshPro.csproj
Unity.Timeline.Editor.csproj
Unity.Timeline.Player.csproj
Unity.Timeline.csproj
Unity.VSCode.Editor.csproj
Unity.VisualScripting.Core.Editor.csproj
Unity.VisualScripting.Core.Player.csproj
Unity.VisualScripting.Core.csproj
Unity.VisualScripting.Flow.Editor.csproj
Unity.VisualScripting.Flow.Player.csproj
Unity.VisualScripting.Flow.csproj
Unity.VisualScripting.SettingsProvider.Editor.csproj
Unity.VisualScripting.Shared.Editor.csproj
Unity.VisualScripting.State.Editor.csproj
Unity.VisualScripting.State.Player.csproj
Unity.VisualScripting.State.csproj
Unity.VisualStudio.Editor.csproj
UnityEditor.TestRunner.csproj
UnityEditor.UI.csproj
UnityEngine.TestRunner.Player.csproj
UnityEngine.TestRunner.csproj
UnityEngine.UI.Player.csproj
UnityEngine.UI.csproj
91 lines
2.5 KiB
C#
91 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEditor.TestTools.TestRunner.Api;
|
|
using UnityEngine;
|
|
|
|
namespace Microsoft.Unity.VisualStudio.Editor.Testing
|
|
{
|
|
internal class TestRunnerCallbacks : ICallbacks
|
|
{
|
|
private string Serialize<TContainer, TSource, TAdaptor>(
|
|
TSource source,
|
|
Func<TSource, int, TAdaptor> createAdaptor,
|
|
Func<TSource, IEnumerable<TSource>> children,
|
|
Func<TAdaptor[], TContainer> container)
|
|
{
|
|
var adaptors = new List<TAdaptor>();
|
|
|
|
void AddAdaptor(TSource item, int parentIndex)
|
|
{
|
|
var index = adaptors.Count;
|
|
adaptors.Add(createAdaptor(item, parentIndex));
|
|
foreach (var child in children(item))
|
|
AddAdaptor(child, index);
|
|
}
|
|
|
|
AddAdaptor(source, -1);
|
|
|
|
return JsonUtility.ToJson(container(adaptors.ToArray()));
|
|
}
|
|
|
|
private string Serialize(ITestAdaptor testAdaptor)
|
|
{
|
|
return Serialize(
|
|
testAdaptor,
|
|
(a, parentIndex) => new TestAdaptor(a, parentIndex),
|
|
(a) => a.Children,
|
|
(r) => new TestAdaptorContainer { TestAdaptors = r });
|
|
}
|
|
|
|
private string Serialize(ITestResultAdaptor testResultAdaptor)
|
|
{
|
|
return Serialize(
|
|
testResultAdaptor,
|
|
(a, parentIndex) => new TestResultAdaptor(a, parentIndex),
|
|
(a) => a.Children,
|
|
(r) => new TestResultAdaptorContainer { TestResultAdaptors = r });
|
|
}
|
|
|
|
public void RunFinished(ITestResultAdaptor testResultAdaptor)
|
|
{
|
|
VisualStudioIntegration.BroadcastMessage(Messaging.MessageType.RunFinished, Serialize(testResultAdaptor));
|
|
}
|
|
|
|
public void RunStarted(ITestAdaptor testAdaptor)
|
|
{
|
|
VisualStudioIntegration.BroadcastMessage(Messaging.MessageType.RunStarted, Serialize(testAdaptor));
|
|
}
|
|
|
|
public void TestFinished(ITestResultAdaptor testResultAdaptor)
|
|
{
|
|
VisualStudioIntegration.BroadcastMessage(Messaging.MessageType.TestFinished, Serialize(testResultAdaptor));
|
|
}
|
|
|
|
public void TestStarted(ITestAdaptor testAdaptor)
|
|
{
|
|
VisualStudioIntegration.BroadcastMessage(Messaging.MessageType.TestStarted, Serialize(testAdaptor));
|
|
}
|
|
|
|
private static string TestModeName(TestMode testMode)
|
|
{
|
|
switch (testMode)
|
|
{
|
|
case TestMode.EditMode: return "EditMode";
|
|
case TestMode.PlayMode: return "PlayMode";
|
|
}
|
|
|
|
throw new ArgumentOutOfRangeException();
|
|
}
|
|
|
|
|
|
internal void TestListRetrieved(TestMode testMode, ITestAdaptor testAdaptor)
|
|
{
|
|
// TestListRetrieved format:
|
|
// TestMode:Json
|
|
|
|
var value = TestModeName(testMode) + ":" + Serialize(testAdaptor);
|
|
VisualStudioIntegration.BroadcastMessage(Messaging.MessageType.TestListRetrieved, value);
|
|
}
|
|
}
|
|
}
|