void ProcessDiscoveryQueue() { if (discoveryQueue.IsEmpty) { return; } if (discoveryJobInProgress != null) { return; } if (!discoveryQueue.TryDequeue(out var newJob)) { return; } discoveryJobInProgress = newJob; var testAssemblyFile = discoveryJobInProgress.project.GetOutputFileName(IdeApp.Workspace.ActiveConfiguration); if (!File.Exists(testAssemblyFile)) { discoveryJobInProgress.taskSource.SetResult(discoveryJobInProgress.tests); discoveryJobInProgress = null; ProcessDiscoveryQueue(); return; } SendExtensionList(GetTestAdapters(discoveryJobInProgress.project).Split(';')); var message = new DiscoveryRequestPayload { Sources = new string [] { testAssemblyFile }, RunSettings = GetRunSettings(discoveryJobInProgress.project) }; communicationManager.SendMessage(MessageType.StartDiscovery, message); }
void OnDiscoveryCompleted(Message message) { var discoveryCompletePayload = dataSerializer.DeserializePayload <DiscoveryCompletePayload> (message); if (discoveryCompletePayload.LastDiscoveredTests != null && discoveryCompletePayload.LastDiscoveredTests.Any()) { discoveryJobInProgress.tests.Add(discoveryCompletePayload.LastDiscoveredTests); } discoveryJobInProgress.taskSource.SetResult(discoveryJobInProgress.tests); discoveryJobInProgress = null; ProcessDiscoveryQueue(); }
public async Task <DiscoveredTests> DiscoverTestsAsync(Project project) { await Start(); var job = new DiscoveryJob() { project = project }; discoveryQueue.Enqueue(job); ProcessDiscoveryQueue(); return(await job.taskSource.Task); }
public async Task StartDiscoveryJobAsync(int processingSetArtifactId, int workspaceArtifactId) { try { Console2.WriteDisplayStartLine("Starting Discovery Job"); // Create a discovery job object. DiscoveryJob discoveryJob = new DiscoveryJob { ProcessingSetId = processingSetArtifactId, WorkspaceArtifactId = workspaceArtifactId }; // Submit the job for discovery. await ProcessingJobManager.SubmitDiscoveryJobsAsync(discoveryJob); Console2.WriteDisplayEndLine("Started Discovery Job!"); } catch (Exception ex) { throw new Exception("An error occured when staring Processing Discovery Job", ex); } }