Exemplo n.º 1
0
        /// <inheritdoc/>
        public ITestFrameworkDiscoverer GetDiscoverer(IAssemblyInfo assemblyInfo)
        {
            var discoverer = CreateDiscoverer(assemblyInfo);

            DisposalTracker.Add(discoverer);
            return(discoverer);
        }
Exemplo n.º 2
0
        /// <inheritdoc/>
        public ITestFrameworkExecutor GetExecutor(AssemblyName assemblyName)
        {
            var executor = CreateExecutor(assemblyName);

            DisposalTracker.Add(executor);
            return(executor);
        }
Exemplo n.º 3
0
        static object CreateInstance(IMessageSink diagnosticMessageSink, Type type, object[] ctorArgs)
        {
            ctorArgs = ctorArgs ?? new object[0];
            object result = null;

            try
            {
                var ctorArgsWithMessageSink = ctorArgs.Concat(new object[] { diagnosticMessageSink }).ToArray();
                result = Activator.CreateInstance(type, ctorArgsWithMessageSink);
            }
            catch (MissingMemberException)
            {
                try
                {
                    result = Activator.CreateInstance(type, ctorArgs);
                }
                catch (MissingMemberException)
                {
                    diagnosticMessageSink.OnMessage(new DiagnosticMessage($"Could not find constructor for '{type.FullName}' with arguments type(s): {(string.Join(", ", ctorArgs.Select(a => a == null ? "(unknown)" : a.GetType().FullName)))}"));
                    throw;
                }
            }

            var disposable = result as IDisposable;

            if (disposable != null)
            {
                disposalTracker.Add(disposable);
            }

            return(result);
        }
        private static object CreateInstance(Type type, object[] ctorArgs)
        {
            var result = Activator.CreateInstance(type, ctorArgs ?? new object[0]);

            var disposable = result as IDisposable;

            if (disposable != null)
            {
                disposalTracker.Add(disposable);
            }

            return(result);
        }