summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs')
-rw-r--r--Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs
new file mode 100644
index 0000000..8d16ca5
--- /dev/null
+++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/UnityTestProtocol/UnityTestProtocolStarter.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Linq;
+using UnityEditor.Compilation;
+using UnityEditor.TestTools.TestRunner.Api;
+using UnityEngine;
+using UnityEngine.TestTools;
+
+namespace UnityEditor.TestTools.TestRunner.UnityTestProtocol
+{
+ [InitializeOnLoad]
+ internal static class UnityTestProtocolStarter
+ {
+ static UnityTestProtocolStarter()
+ {
+ var commandLineArgs = Environment.GetCommandLineArgs();
+ if (commandLineArgs.Contains("-automated") && commandLineArgs.Contains("-runTests")) // wanna have it only for utr run
+ {
+ var api = ScriptableObject.CreateInstance<TestRunnerApi>();
+ var listener = ScriptableObject.CreateInstance<UnityTestProtocolListener>();
+ api.RegisterCallbacks(listener);
+ CompilationPipeline.assemblyCompilationFinished += OnAssemblyCompilationFinished;
+ }
+ }
+
+ public static void OnAssemblyCompilationFinished(string assembly, CompilerMessage[] messages)
+ {
+ bool checkCompileErrors = RecompileScripts.Current == null || RecompileScripts.Current.ExpectScriptCompilationSuccess;
+
+ if (checkCompileErrors && messages.Any(x => x.type == CompilerMessageType.Error))
+ {
+ var compilerErrorMessages = messages.Where(x => x.type == CompilerMessageType.Error);
+ var utpMessageReporter = new UtpMessageReporter(new UtpDebugLogger());
+ utpMessageReporter.ReportAssemblyCompilationErrors(assembly, compilerErrorMessages);
+ }
+ }
+ }
+}