summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
committerAndrew Lee <alee14498@protonmail.com>2020-04-19 17:19:32 -0400
commitc55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch)
treeee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs
downloadProject-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2
Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs')
-rw-r--r--Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs66
1 files changed, 66 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs
new file mode 100644
index 0000000..0b47e1d
--- /dev/null
+++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/Utils/AssemblyProvider/PlayerTestAssemblyProvider.cs
@@ -0,0 +1,66 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using NUnit.Framework.Interfaces;
+using UnityEngine.TestTools.NUnitExtensions;
+
+namespace UnityEngine.TestTools.Utils
+{
+ internal class PlayerTestAssemblyProvider
+ {
+ private IAssemblyLoadProxy m_AssemblyLoadProxy;
+ private readonly List<string> m_AssembliesToLoad;
+
+ //Cached until domain reload
+ private static List<IAssemblyWrapper> m_LoadedAssemblies;
+
+ internal PlayerTestAssemblyProvider(IAssemblyLoadProxy assemblyLoadProxy, List<string> assembliesToLoad)
+ {
+ m_AssemblyLoadProxy = assemblyLoadProxy;
+ m_AssembliesToLoad = assembliesToLoad;
+ LoadAssemblies();
+ }
+
+ public ITest GetTestsWithNUnit()
+ {
+ return BuildTests(TestPlatform.PlayMode, m_LoadedAssemblies.ToArray());
+ }
+
+ public List<IAssemblyWrapper> GetUserAssemblies()
+ {
+ return m_LoadedAssemblies;
+ }
+
+ protected static ITest BuildTests(TestPlatform testPlatform, IAssemblyWrapper[] assemblies)
+ {
+ var settings = UnityTestAssemblyBuilder.GetNUnitTestBuilderSettings(testPlatform);
+ var builder = new UnityTestAssemblyBuilder();
+ return builder.Build(assemblies.Select(a => a.Assembly).ToArray(), Enumerable.Repeat(testPlatform, assemblies.Length).ToArray(), settings);
+ }
+
+ private void LoadAssemblies()
+ {
+ if (m_LoadedAssemblies != null)
+ {
+ return;
+ }
+
+ m_LoadedAssemblies = new List<IAssemblyWrapper>();
+
+ foreach (var userAssembly in m_AssembliesToLoad)
+ {
+ IAssemblyWrapper a;
+ try
+ {
+ a = m_AssemblyLoadProxy.Load(userAssembly);
+ }
+ catch (FileNotFoundException)
+ {
+ continue;
+ }
+ if (a != null)
+ m_LoadedAssemblies.Add(a);
+ }
+ }
+ }
+}