diff --git a/src/Microsoft.Build.Utilities.ProjectCreation.UnitTests/BuildEngineTests.cs b/src/Microsoft.Build.Utilities.ProjectCreation.UnitTests/BuildEngineTests.cs index c2a8c2b..ae3e513 100644 --- a/src/Microsoft.Build.Utilities.ProjectCreation.UnitTests/BuildEngineTests.cs +++ b/src/Microsoft.Build.Utilities.ProjectCreation.UnitTests/BuildEngineTests.cs @@ -111,6 +111,23 @@ public void Warnings(string expectedMessage, string expectedCode) args.Code.ShouldBe(expectedCode); } + [Fact] + public void WithTask() + { + BuildEngine buildEngine = BuildEngine.Create(); + + var task = new TestTask + { + BuildEngine = buildEngine, + }; + + bool result = task.Execute(); + + result.ShouldBeTrue(); + + buildEngine.GetConsoleLog().ShouldContain("Test Message", customMessage: buildEngine.GetConsoleLog()); + } + private BuildEngine GetBuildEngineWithEvents(Action action) { BuildEngine buildEngine = BuildEngine.Create(); @@ -119,5 +136,15 @@ private BuildEngine GetBuildEngineWithEvents(Action action) return buildEngine; } + + private class TestTask : Task + { + public override bool Execute() + { + Log.LogMessageFromText("Test Message", MessageImportance.High); + + return true; + } + } } -} \ No newline at end of file +} diff --git a/src/Microsoft.Build.Utilities.ProjectCreation/ConsoleLoggerStringBuilder.cs b/src/Microsoft.Build.Utilities.ProjectCreation/ConsoleLoggerStringBuilder.cs index 8d6cf00..050a720 100644 --- a/src/Microsoft.Build.Utilities.ProjectCreation/ConsoleLoggerStringBuilder.cs +++ b/src/Microsoft.Build.Utilities.ProjectCreation/ConsoleLoggerStringBuilder.cs @@ -147,6 +147,11 @@ public void ReplayEvents(IReadOnlyCollection events) { foreach (BuildEventArgs buildEventArgs in events) { + if (buildEventArgs.BuildEventContext is null) + { + buildEventArgs.BuildEventContext = BuildEventContext.Invalid; + } + AnyEventRaised?.Invoke(this, buildEventArgs); switch (buildEventArgs)