123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- 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);
- }
- }
- }
- }
|