public IEnumerable <MethodMetaData> GetTestCoverageMetrics(TestCoverage coverage) { var visitedMethodMetadata = coverage.CoverageSession.Modules .SelectMany(c => c.Classes) //Flat list of all classes in coverage session .SelectMany(f => f.Methods) //Flat list of all the functions touched in the coverage session .Where(f => f.Visited) //Filter out any function that weren't visited. .Select(f => new MethodMetaData(f, coverage.Test.TestName)); //Turn all of the methods into my custom meta data class. Look inside for details. return(visitedMethodMetadata); }
public AnnotatedTest FindAnnotation(ref IList <AnnotatedTest> annotations, TestCoverage coverage) { foreach (var annotation in annotations) { if (Equals(coverage.Test, annotation.IndividualTest)) { return(annotation); } } return(null); }
public TestCoverage FindCoverage(TestCoverage coverage, ref TraceTests against) { foreach (var testCoverage in against.TestCoverages) { if (testCoverage.Pass != coverage.Pass) { continue; } if (CompareModuleCoverages(testCoverage.ModuleCoverages, coverage.ModuleCoverages)) { return(testCoverage); } } return(null); }
public IList <StudentTestDto> GetStudentTests(TestCoverage instructor, ref TraceTests student) { var studentTests = new List <StudentTestDto>(); var testStatus = TestStatusEnum.Covered; foreach (var coverage in student.TestCoverages) { if (CompareModuleCoverages(instructor.ModuleCoverages, coverage.ModuleCoverages)) { studentTests.Add( new StudentTestDto() { TestStatus = testStatus, Name = coverage.Test.TestName, Passed = coverage.Pass }); testStatus = TestStatusEnum.Redundant; } } return(studentTests); }
private static async Task <TestCoverage> GetTestCoverageHits(RemoteWebDriver webDriver) { // wait for 5 seconds var waitTime = 5 * 1000; var interval = 500; var count = waitTime / interval; TestCoverage testCoverage = null; while (count > 0) { count--; var resultsObject = (string)webDriver.ExecuteScript("return JSON.stringify(TestRunner.GetTestCoverage());"); testCoverage = JsonSerializer.Deserialize <TestCoverage>(resultsObject, new JsonSerializerOptions() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }); if (testCoverage != null) { break; } await Task.Delay(interval); } #if DEBUG if (testCoverage is null) { throw new TestRunnerException("Failed to get test coverage results."); } if (testCoverage.HitsFilePath is null) { throw new TestRunnerException("Failed to get test coverage hits file path."); } #endif return(testCoverage); }