Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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);
            }
        }