public void TestSources() { var logger = new Logger("logs"); AppDomain.CurrentDomain.SetData("DataDirectory", Path.GetFullPath(@"..\App_Data\")); var parallelOptions = new ParallelOptions // if server, sandboxerRunner and test run in one machine { MaxDegreeOfParallelism = Environment.ProcessorCount }; var res = Parallel.ForEach(GetSources(), parallelOptions, async source => { var id = String.Format("{0:D10}", source.Id); var executionService = new CsSandboxExecutionService(); SubmissionResult runResult = null; try { runResult = await executionService.Submit(source.Code, id); } catch (Exception ex) { logger.Write(source, ex); } if (runResult != null && !IsCorrectSolution(source, runResult)) logger.Write(source, runResult); }); while (!res.IsCompleted) { Thread.Sleep(60*1000); } }
private IEnumerable<TestCaseData> GetSlidesTestCases() { var executionService = new CsSandboxExecutionService(); var courseManager = WebCourseManager.Instance; Assert.That(courseManager.GetCourses().Count() >= 2); return from course in courseManager.GetCourses() from slide in course.Slides.OfType<ExerciseSlide>() select new TestCaseData(slide, executionService).SetName(course.Id + " - " + slide.Info.UnitName + " - " + slide.Title); }