Ejemplo n.º 1
0
        public async Task <ICollection <UnitTestResult> > GenerateResultsImpl(SubmissionData data, string snapshot, DevAssignment assignment,
                                                                              ICollection <SnapshotMethod> snapshotMethods)
        {
            using (var handler =
                       new DirectoryHandler(GetTestDirectory(data)))
            {
                var testProject = new TestProjectObj(handler.Directory, assignment.TestProject);
                testProject.MoveFilesToProject(data.SnapshotSourceFiles(snapshot));

                var preprocessorArguments = GetPreprocessorArguments(snapshotMethods);

                var process = new EngineProcess(GetEngineProcessData(handler.Directory,
                                                                     testProject, preprocessorArguments));

                var exitCode = process.Run();
                if (exitCode == 0)
                {
                    process.Stop();
                    return(GetUnitTestResults(assignment.TestProject,
                                              ResultsFile(handler.Directory)));
                }

                EngineReportExceptionData exception;

                using (var reader = process.StandardError)
                {
                    exception = new EngineReportExceptionData(reader.ReadToEnd())
                    {
                        Type = "Build",
                    };
                }
                process.Stop();
                throw exception;
            }
        }
Ejemplo n.º 2
0
 public EngineProcessData GetEngineProcessData(string workingDirectory,
                                               TestProjectObj testProject, string preprocessorArgument)
 {
     return(new EngineProcessData()
     {
         Command = Options.CommandPath,
         Arguments = $"-TestProject \'{testProject.TestProjectFile}\' " +
                     $"-TestFile \'{testProject.TestDllFile}\' " +
                     $"-ResultFile \'{ResultsFile(workingDirectory)}\' " +
                     $"-Arguments \'{preprocessorArgument}\'",
         WorkingDirectory = workingDirectory
     });
 }
Ejemplo n.º 3
0
        public async Task <ICollection <UnitTest> > GenerateResults(PreAssignment assignment, DirectoryHandler handler, string root)
        {
            using (var testHandler = new DirectoryHandler(GetTestDirectory(handler.Directory)))
            {
                var testProject = new TestProjectObj(testHandler.Directory, assignment.TestProject);

                if (!Directory.Exists(testProject.TestFolder))
                {
                    throw new EngineAssignmentExceptionData()
                          {
                              Report = new PreAssignmentBadTestFolderReport()
                          }
                }
                ;

                testProject.MoveFilesToProject(root);

                var preprocessorArguments = GetPreprocessorArguments(assignment.Solution.MethodDeclarations);

                var process = new EngineProcess(GetEngineProcessData(testHandler.Directory,
                                                                     testProject, preprocessorArguments));

                var exitCode = process.Run();

                if (exitCode == 0)
                {
                    process.Stop();
                    return(GetUnitTestResults(ResultsFile(testHandler.Directory)));
                }

                EngineAssignmentExceptionData exception;

                using (var reader = process.StandardError)
                {
                    exception = new EngineAssignmentExceptionData()
                    {
                        Report = new PreAssignmentBuildFailureReport()
                        {
                            Report = reader.ReadToEnd(),
                        }
                    };
                }
                process.Stop();
                throw exception;
            }
        }