コード例 #1
0
        private Task <TestResultContainer> GetNextTestToOpen_()
        {
            ScoreTask bestScoreTask = null;
            int       bestMark      = -1;

            lock (allEyes_)
            {
                Logger.Verbose("looking for best test in a list of {0} eyes.", allEyes_.Count);
                foreach (IVisualGridEyes eyes in allEyes_)
                {
                    ScoreTask currentTestMark = eyes.GetBestScoreTaskForOpen();
                    if (currentTestMark == null)
                    {
                        continue;
                    }
                    int currentScore = currentTestMark.Score;
                    if (bestMark < currentScore)
                    {
                        bestMark      = currentScore;
                        bestScoreTask = currentTestMark;
                    }
                }
            }

            if (bestScoreTask == null)
            {
                lock (allEyes_)
                {
                    Logger.Verbose("no relevant test found in: {0}", allEyes_.Concat(" ; "));
                }
                return(null);
            }

            Logger.Verbose("found test with mark {0}", bestMark);
            Logger.Verbose("calling getNextOpenTaskAndRemove on {0}", bestScoreTask);
            VisualGridTask             nextOpenTask = bestScoreTask.Task;
            Task <TestResultContainer> task         = new Task <TestResultContainer>(nextOpenTask.Call, nextOpenTask);

            Logger.Verbose("task id: {0}", task.Id);
            return(task);
        }
コード例 #2
0
        private Task <TestResultContainer> GetNextCheckTask_()
        {
            ScoreTask bestScoreTask = null;
            int       bestScore     = -1;

            lock (allEyes_)
            {
                Logger.Verbose("looking for best test in a list of {0}", allEyes_.Count);
                //Logger.Verbose("locking allEyes_");

                foreach (IVisualGridEyes eyes in allEyes_)
                {
                    ScoreTask currentScoreTask = eyes.GetBestScoreTaskForCheck();
                    if (currentScoreTask == null)
                    {
                        continue;
                    }
                    int currentTestMark = currentScoreTask.Score;
                    if (bestScore < currentTestMark)
                    {
                        bestScoreTask = currentScoreTask;
                        bestScore     = currentTestMark;
                    }
                }
            }
            //Logger.Verbose("releasing allEyes_");

            if (bestScoreTask == null)
            {
                Logger.Verbose("no test found.");
                return(null);
            }
            Logger.Verbose("found test with score {0}", bestScore);
            VisualGridTask             vgTask = bestScoreTask.Task;
            Task <TestResultContainer> task   = new Task <TestResultContainer>(vgTask.Call, vgTask);

            Logger.Verbose("task id: {0}", task.Id);
            return(task);
        }