private static IIsolatedEnvironment CreateSharedEnvironment() { IIsolatedEnvironment environment = IsolatedEnvironmentManager.CreateIsolatedEnvironment(); environment.Loader.AddHintDirectory(LoaderUtils.GetLoaderDirectoryPath()); environment.Loader.SetupRuntime(); return(environment); }
/// <summary> /// Gets the shared environment. /// </summary> /// <returns>The shared environment.</returns> public static IIsolatedEnvironment GetSharedEnvironment() { lock (sharedEnvironmentSyncRoot) { if (sharedEnvironment == null) sharedEnvironment = CreateSharedEnvironment(); return sharedEnvironment; } }
protected virtual FacadeTaskResult Execute(IFacadeTaskServer facadeTaskServer, IFacadeLogger facadeLogger, FacadeTask facadeTask, FacadeTaskExecutorConfiguration facadeTaskExecutorConfiguration) { IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment(); Type taskRunnerType = typeof(RemoteFacadeTaskRunner); IRemoteFacadeTaskRunner taskRunner = (IRemoteFacadeTaskRunner)environment.AppDomain.CreateInstanceAndUnwrap( taskRunnerType.Assembly.FullName, taskRunnerType.FullName); return(taskRunner.Execute(facadeTaskServer, facadeLogger, facadeTask, facadeTaskExecutorConfiguration)); }
private static ITestAdapter CreateRemoteShim() { IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment(); environment.Loader.AddHintDirectory(GetVSTSDirectoryPath()); Type shimType = typeof(Shim); ITestAdapter shim = (ITestAdapter)environment.AppDomain.CreateInstanceAndUnwrap(shimType.Assembly.FullName, shimType.FullName); return(shim); }
/// <summary> /// Gets the shared environment. /// </summary> /// <returns>The shared environment.</returns> public static IIsolatedEnvironment GetSharedEnvironment() { lock (sharedEnvironmentSyncRoot) { if (sharedEnvironment == null) { sharedEnvironment = CreateSharedEnvironment(); } return(sharedEnvironment); } }
internal virtual IProxyTestRunner CreateRemoteProxyTestRunner() { try { IIsolatedEnvironment environment = SharedEnvironmentManager.GetSharedEnvironment(); AppDomain.CurrentDomain.AssemblyResolve += ResolveRunnerAssembly; Type runnerType = typeof(RemoteProxyTestRunner); object runner = environment.AppDomain.CreateInstanceAndUnwrap(runnerType.Assembly.FullName, runnerType.FullName); return((IProxyTestRunner)runner); } finally { AppDomain.CurrentDomain.AssemblyResolve -= ResolveRunnerAssembly; } }
public PluginManager(ILogger logger, IConfiguration configuration, IMessageQueue messageQueue, IDirectory baseDirectory, IIsolatedEnvironment environment, IPackage package) { ErrorCount = 0; if (logger == null) throw new ArgumentNullException("logger"); if (configuration == null) throw new ArgumentNullException("configuration"); if (baseDirectory == null) throw new ArgumentNullException("baseDirectory"); if (environment == null) throw new ArgumentNullException("environment"); if (package == null) throw new ArgumentNullException("package"); State = PluginState.Unloaded; _logger = logger; _configuration = configuration; _messageQueue = messageQueue; _baseDirectory = baseDirectory; _isolatedEnvironment = environment; _package = package; _lazyManifest = new Lazy<IManifest>(_package.GetManifest); _isolatedEnvironment.UnhandledError += OnUnhandledError; }
public PluginManager(ILogger logger, IConfiguration configuration, IMessageQueue messageQueue, IDirectory baseDirectory, IIsolatedEnvironment environment, IPackage package) { ErrorCount = 0; if (logger == null) { throw new ArgumentNullException("logger"); } if (configuration == null) { throw new ArgumentNullException("configuration"); } if (baseDirectory == null) { throw new ArgumentNullException("baseDirectory"); } if (environment == null) { throw new ArgumentNullException("environment"); } if (package == null) { throw new ArgumentNullException("package"); } State = PluginState.Unloaded; _logger = logger; _configuration = configuration; _messageQueue = messageQueue; _baseDirectory = baseDirectory; _isolatedEnvironment = environment; _package = package; _lazyManifest = new Lazy <IManifest>(_package.GetManifest); _isolatedEnvironment.UnhandledError += OnUnhandledError; }