diff options
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.cs | 66 |
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);
+ }
+ }
+ }
+}
|
