/// <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; }
public XmlAggregateVisitor(IMessageSink innerMessageSink, ConcurrentDictionary <string, ExecutionSummary> completionMessages, XElement assemblyElement, Func <bool> cancelThunk) : base(assemblyElement, cancelThunk) { _innerMessageSink = innerMessageSink; _completionMessages = completionMessages; ExecutionSummary = new ExecutionSummary(); }
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(); }
/// <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(); }
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; }
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); }