public void Should_Create_CheckRun_TestConsoleApp1_CodeAnalysis() { var annotations = new[] { new Annotation( "TestConsoleApp1/Program.cs", 20, 20, AnnotationLevel.Warning, "Microsoft.Usage : 'Program.MyClass' contains field 'Program.MyClass._inner' that is of IDisposable type: 'Program.MyOTherClass'. Change the Dispose method on 'Program.MyClass' to call Dispose or Close on this field.") { Title = "CA2213: TestConsoleApp1/Program.cs(20)" } }; var cloneRoot = @"C:\projects\testconsoleapp1\"; var resourcePath = TestUtils.GetResourcePath("testconsoleapp1-codeanalysis.binlog"); var binaryLogProcessor = new BinaryLogProcessor(new BinaryLogReader(), TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); var checkRun = GetCheckRun(binaryLogProcessor, inputFile: resourcePath, cloneRoot: cloneRoot, owner: Faker.Internet.UserName(), repo: Faker.Random.Word(), hash: Faker.Random.Guid().ToString()); checkRun.Conclusion.Should().Be(CheckConclusion.Success); checkRun.Name.Should().Be("MSBuild Log"); checkRun.Title.Should().Be("0 errors - 1 warning"); checkRun.Summary.Should().NotBeNullOrWhiteSpace(); checkRun.Annotations.Should().BeEquivalentTo <Annotation>(annotations); }
public void ShouldParseDBATools() { var cloneRoot = @"c:\github\dbatools\bin\projects\dbatools\"; var resourcePath = TestUtils.GetResourcePath("dbatools.binlog"); File.Exists(resourcePath).Should().BeTrue(); var parser = new BinaryLogProcessor(TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); var parsedBinaryLog = parser.ProcessLog(resourcePath, cloneRoot); parsedBinaryLog.SolutionDetails.CloneRoot.Should().Be(cloneRoot); var dbaToolsProject = @"c:\github\dbatools\bin\projects\dbatools\dbatools\dbatools.csproj"; var dbaToolsProjectPath = @"c:\github\dbatools\bin\projects\dbatools\dbatools"; var dbaToolsTestProject = @"c:\github\dbatools\bin\projects\dbatools\dbatools.Tests\dbatools.Tests.csproj"; var dbaToolsTestProjectPath = @"c:\github\dbatools\bin\projects\dbatools\dbatools.Tests"; var dbaToolsProjectDetails = parsedBinaryLog.SolutionDetails[dbaToolsProject]; dbaToolsProjectDetails.ProjectFile.Should().Be(dbaToolsProject); dbaToolsProjectDetails.ProjectDirectory.Should().Be(dbaToolsProjectPath); var dbaToolsTestProjectDetails = parsedBinaryLog.SolutionDetails[dbaToolsTestProject]; dbaToolsTestProjectDetails.ProjectFile.Should().Be(dbaToolsTestProject); dbaToolsTestProjectDetails.ProjectDirectory.Should().Be(dbaToolsTestProjectPath); parsedBinaryLog.SolutionDetails.Count(project => project.Value.ProjectFile.EndsWith(".csproj")).Should().Be(2); parsedBinaryLog.BuildMessages.Should().BeEmpty(); }
public void Should_Create_CheckRun_TestConsoleApp1_Error() { var annotations = new[] { new Annotation( "TestConsoleApp1/Program.cs", 13, 13, AnnotationLevel.Failure, "; expected") { Title = "CS1002: TestConsoleApp1/Program.cs(13)" } }; var cloneRoot = @"C:\projects\testconsoleapp1\"; var resourcePath = TestUtils.GetResourcePath("testconsoleapp1-1error.binlog"); var binaryLogProcessor = new BinaryLogProcessor(new BinaryLogReader(), TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); var checkRun = GetCheckRun(binaryLogProcessor, inputFile: resourcePath, cloneRoot: cloneRoot, owner: Faker.Internet.UserName(), repo: Faker.Random.Word(), hash: Faker.Random.Guid().ToString()); checkRun.Conclusion.Should().Be(CheckConclusion.Failure); checkRun.Name.Should().Be("MSBuild Log"); checkRun.Title.Should().Be("1 error - 0 warnings"); checkRun.Summary.Should().NotBeNullOrWhiteSpace(); checkRun.Annotations.Should().BeEquivalentTo <Annotation>(annotations); }
static int Main(string[] args) { var fileSystem = new FileSystem(); var binaryLogProcessor = new BinaryLogProcessor(new BinaryLogReader()); var buildLogProcessor = new BuildLogProcessor(fileSystem, binaryLogProcessor); var commandLineParser = new CommandLineParser(System.Console.WriteLine); var program = new Program(commandLineParser, buildLogProcessor); return(program.Run(args) ? 0 : 1); }
private BuildDetails ParseLogs(string resourceName, string cloneRoot) { var resourcePath = TestUtils.GetResourcePath(resourceName); File.Exists(resourcePath).Should().BeTrue(); var parser = new BinaryLogProcessor(TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); return(parser.ProcessLog(resourcePath, cloneRoot)); }
public void ShouldParseOctokitGraphQL() { var cloneRoot = @"C:\projects\octokit-graphql\"; var resourcePath = TestUtils.GetResourcePath("octokit.graphql.binlog"); File.Exists(resourcePath).Should().BeTrue(); var parser = new BinaryLogProcessor(TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); var parsedBinaryLog = parser.ProcessLog(resourcePath, cloneRoot); }
private LogData ProcessLog(string resourceName, string cloneRoot, string userName, string repo, string hash, CheckRunConfiguration checkRunConfiguration = null) { var resourcePath = TestUtils.GetResourcePath(resourceName); File.Exists(resourcePath).Should().BeTrue(); var binaryLogReader = new BinaryLogReader(); var logProcessor = new BinaryLogProcessor(binaryLogReader, TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); return(logProcessor.ProcessLog(resourcePath, cloneRoot, userName, repo, hash, checkRunConfiguration)); }
private async Task AssertSubmit(string file, string sha) { var resourcePath = TestUtils.GetResourcePath(file); var cloneRoot = @"C:\projects\testconsoleapp1\"; var startedAt = DateTimeOffset.Now; var parser = new BinaryLogProcessor(TestLogger.Create <BinaryLogProcessor>(_testOutputHelper)); var buildDetails = parser.ProcessLog(resourcePath, cloneRoot); var gitHubAppClientFactory = CreateGitHubAppClientFactory(); var gitHubAppModelService = new GitHubAppModelService(gitHubAppClientFactory, CreateTokenGenerator()); var msblocService = new LogAnalyzerService(parser, gitHubAppModelService, TestLogger.Create <LogAnalyzerService>(_testOutputHelper)); var checkRun = await msblocService.SubmitAsync(TestAppOwner, TestAppRepo, sha, cloneRoot, resourcePath); checkRun.Should().NotBeNull(); }