예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TestAssemblyExecutionFinished"/> class.
 /// </summary>
 /// <param name="assembly">Information about the assembly that is being discovered</param>
 /// <param name="executionOptions">The execution options</param>
 /// <param name="executionSummary">The execution summary</param>
 public TestAssemblyExecutionFinished(XunitProjectAssembly assembly,
                                      ITestFrameworkExecutionOptions executionOptions,
                                      ExecutionSummary executionSummary)
 {
     Assembly         = assembly;
     ExecutionOptions = executionOptions;
     ExecutionSummary = executionSummary;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="TestAssemblyExecutionFinished"/> class.
 /// </summary>
 /// <param name="assembly">Information about the assembly that is being discovered</param>
 /// <param name="executionOptions">The execution options</param>
 /// <param name="executionSummary">The execution summary</param>
 public TestAssemblyExecutionFinished(XunitProjectAssembly assembly,
                                      ITestFrameworkExecutionOptions executionOptions,
                                      ExecutionSummary executionSummary)
 {
     Assembly = assembly;
     ExecutionOptions = executionOptions;
     ExecutionSummary = executionSummary;
 }
예제 #3
0
        public XmlAggregateVisitor(IMessageSink innerMessageSink,
                                   ConcurrentDictionary <string, ExecutionSummary> completionMessages,
                                   XElement assemblyElement,
                                   Func <bool> cancelThunk)
            : base(assemblyElement, cancelThunk)
        {
            _innerMessageSink   = innerMessageSink;
            _completionMessages = completionMessages;

            ExecutionSummary = new ExecutionSummary();
        }
예제 #4
0
        public XmlAggregateVisitor(IMessageSink innerMessageSink,
                                   ConcurrentDictionary<string, ExecutionSummary> completionMessages,
                                   XElement assemblyElement,
                                   Func<bool> cancelThunk)
            : base(assemblyElement, cancelThunk)
        {
            this.innerMessageSink = innerMessageSink;
            this.completionMessages = completionMessages;

            ExecutionSummary = new ExecutionSummary();
        }
예제 #5
0
        /// <summary>
        /// Initializes a new instance of <see cref="XmlAggregateVisitor"/>.
        /// </summary>
        /// <param name="innerMessageSink">The inner message sink to pass messages to.</param>
        /// <param name="completionMessages">The dictionary which collects execution summaries for all assemblies.</param>
        /// <param name="assemblyElement">The root XML assembly element to collect the result XML.</param>
        /// <param name="cancelThunk">The callback used to determine when to cancel execution.</param>
        public XmlAggregateVisitor(IMessageSink innerMessageSink,
                                   ConcurrentDictionary <string, ExecutionSummary> completionMessages,
                                   XElement assemblyElement,
                                   Func <bool> cancelThunk)
            : base(assemblyElement, cancelThunk)
        {
            Guard.ArgumentNotNull(nameof(innerMessageSink), innerMessageSink);

            this.innerMessageSink   = innerMessageSink;
            this.completionMessages = completionMessages;

            ExecutionSummary = new ExecutionSummary();
        }
예제 #6
0
        protected override bool Visit(ITestAssemblyFinished assemblyFinished)
        {
            var result = base.Visit(assemblyFinished);

            ExecutionSummary = new ExecutionSummary
            {
                Total = assemblyFinished.TestsRun,
                Failed = assemblyFinished.TestsFailed,
                Skipped = assemblyFinished.TestsSkipped,
                Time = assemblyFinished.ExecutionTime,
                Errors = Errors
            };

            if (_completionMessages != null)
                _completionMessages.TryAdd(Path.GetFileNameWithoutExtension(assemblyFinished.TestAssembly.Assembly.AssemblyPath), ExecutionSummary);

            return result;
        }
예제 #7
0
        protected override bool Visit(ITestAssemblyFinished assemblyFinished)
        {
            var result = base.Visit(assemblyFinished);

            ExecutionSummary = new ExecutionSummary
            {
                Total   = assemblyFinished.TestsRun,
                Failed  = assemblyFinished.TestsFailed,
                Skipped = assemblyFinished.TestsSkipped,
                Time    = assemblyFinished.ExecutionTime,
                Errors  = Errors
            };

            if (_completionMessages != null)
            {
                _completionMessages.TryAdd(Path.GetFileNameWithoutExtension(assemblyFinished.TestAssembly.Assembly.AssemblyPath), ExecutionSummary);
            }

            return(result);
        }
 private async Task RunClient(IODataClient client, int productID, ExecutionSummary result)
 {
     try
     {
         var product = await client.FindEntryAsync(string.Format("Products({0})", productID));
         if (productID != Convert.ToInt32(product["ProductID"]))
         {
             lock (result)
             {
                 result.NonEqualCount++;
             }
         }
     }
     catch (Exception)
     {
         lock (result)
         {
             result.ExceptionCount++;
         }
     }
     finally
     {
         lock (result)
         {
             result.ExecutionCount++;
         }
     }
 }
        public async Task FindEntryParallelThreadsRenewConnection()
        {
            var client = new ODataClient(new ODataClientSettings() { BaseUri = _serviceUri, RenewHttpConnection = true });
            var products = (await client.FindEntriesAsync("Products")).ToArray();

            var summary = new ExecutionSummary();
            var tasks = new List<Task>();
            foreach (var product in products)
            {
                var task = RunClient(client, Convert.ToInt32(product["ProductID"]), summary);
                tasks.Add(task);
            }
            Task.WaitAll(tasks.ToArray());

            Assert.Equal(products.Count(), summary.ExecutionCount);
            Assert.Equal(0, summary.ExceptionCount);
            Assert.Equal(0, summary.NonEqualCount);
        }
        public async Task FindEntryParallelThreads()
        {
            var products = (await _client.FindEntriesAsync("Products")).ToArray();

            var summary = new ExecutionSummary();
            var tasks = new List<Task>();
            foreach (var product in products)
            {
                var task = RunClient(_client, Convert.ToInt32(product["ProductID"]), summary);
                tasks.Add(task);
            }
            Task.WaitAll(tasks.ToArray());

            Assert.Equal(products.Count(), summary.ExecutionCount);
            Assert.Equal(0, summary.ExceptionCount);
            Assert.Equal(0, summary.NonEqualCount);
        }