Forge
csharp615df5ae
1using Xunit;
2
3namespace DotNetBuildTestParsers.Tests;
4
5public sealed class ParsersTests
6{
7 [Fact]
8 public void BuildOutputParser_finds_error_and_warning()
9 {
10 const string output = """
11 D:\app\Program.cs(10,5): error CS1002: ; expected
12 D:\app\Program.cs(12,1): warning CS0162: Unreachable code
13 """;
14
15 var r = BuildOutputParser.Parse(output);
16
17 Assert.Single(r.Errors);
18 Assert.Single(r.Warnings);
19 Assert.Equal("D:\\app\\Program.cs", r.Errors[0].File);
20 Assert.Equal(10, r.Errors[0].Line);
21 Assert.Equal(5, r.Errors[0].Column);
22 Assert.Equal("CS1002", r.Errors[0].Code);
23 }
24
25 [Fact]
26 public void TestOutputParser_counts_passed_failed()
27 {
28 const string output = """
29 Passed TestProject.UnitTest1 [1 ms]
30 Failed TestProject.UnitTest2 [2 ms]
31 Error Message: Assert.Equal() Failure
32 """;
33
34 var r = TestOutputParser.Parse(output);
35
36 Assert.Equal(2, r.Total);
37 Assert.Equal(1, r.Passed);
38 Assert.Equal(1, r.Failed);
39 Assert.Single(r.FailedTests);
40 Assert.Equal("TestProject.UnitTest2", r.FailedTests[0].Name);
41 Assert.Contains("Assert.Equal", r.FailedTests[0].Message ?? "");
42 }
43}
44
View only · write via MCP/CIDE