No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PlayerTestAssemblyProvider.cs 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using System.Linq;
  4. using NUnit.Framework.Interfaces;
  5. using UnityEngine.TestTools.NUnitExtensions;
  6. namespace UnityEngine.TestTools.Utils
  7. {
  8. internal class PlayerTestAssemblyProvider
  9. {
  10. private IAssemblyLoadProxy m_AssemblyLoadProxy;
  11. private readonly List<string> m_AssembliesToLoad;
  12. //Cached until domain reload
  13. private static List<IAssemblyWrapper> m_LoadedAssemblies;
  14. internal PlayerTestAssemblyProvider(IAssemblyLoadProxy assemblyLoadProxy, List<string> assembliesToLoad)
  15. {
  16. m_AssemblyLoadProxy = assemblyLoadProxy;
  17. m_AssembliesToLoad = assembliesToLoad;
  18. LoadAssemblies();
  19. }
  20. public List<IAssemblyWrapper> GetUserAssemblies()
  21. {
  22. return m_LoadedAssemblies;
  23. }
  24. private void LoadAssemblies()
  25. {
  26. if (m_LoadedAssemblies != null)
  27. {
  28. return;
  29. }
  30. m_LoadedAssemblies = new List<IAssemblyWrapper>();
  31. foreach (var userAssembly in m_AssembliesToLoad)
  32. {
  33. IAssemblyWrapper a;
  34. try
  35. {
  36. a = m_AssemblyLoadProxy.Load(userAssembly);
  37. }
  38. catch (FileNotFoundException)
  39. {
  40. continue;
  41. }
  42. if (a != null)
  43. m_LoadedAssemblies.Add(a);
  44. }
  45. }
  46. }
  47. }